关于kubernetes:K8S-配置多集群访问

41次阅读

共计 2747 个字符,预计需要花费 7 分钟才能阅读完成。

引言

最近买了台新电脑,之前的电脑下面 k8s 多集群拜访配置形式当初忘了过后是怎么配置了,于是本人再次摸索配置胜利,记录下来分享给大家。
留神:自己电脑是 Mac,接下来的操作默认是在 Mac 下面的 zshell 下面执行。

操作

1、首页装置 docker 和 kubectl

docker 装置点击这里,下载即可装置。

➜  ~ docker -v
Docker version 20.10.23, build 7155243

kubectl 装置点击这里

➜  ~ kubectl version
WARNING: This version information is deprecated and will be replaced with the output from kubectl version --short.  Use --output=yaml|json to get the full version.
Client Version: version.Info{Major:"1", Minor:"26", GitVersion:"v1.26.2", GitCommit:"fc04e732bb3e7198d2fa44efa5457c7c6f8c0f5b", GitTreeState:"clean", BuildDate:"2023-02-22T13:32:21Z", GoVersion:"go1.20.1", Compiler:"gc", Platform:"darwin/arm64"}
Kustomize Version: v4.5.7
Server Version: version.Info{Major:"1", Minor:"24+", GitVersion:"v1.24.6-aliyun.1", GitCommit:"e0e067a81f9fa91d46792937d79ec41ec79762eb", GitTreeState:"clean", BuildDate:"2023-02-28T12:15:08Z", GoVersion:"go1.18.6", Compiler:"gc", Platform:"linux/amd64"}
WARNING: version difference between client (1.26) and server (1.24) exceeds the supported minor version skew of +/-1

2、启用 k8s

装置好 docker 和 kubectl 之后,咱们关上 docker GUI,如下所示:

设置 k8s 为启用状态,这时候你会发现用户目录下会多出 .kube 目录,咱们到.kube 目录下能够看到外面有 config 文件

➜  .kube ll
total 72
drwxr-x---@ 4 justinzhang  staff   128B  3 22 15:37 cache
-rw-r--r--@ 1 justinzhang  wheel    13K  4  1 17:03 config

咱们能够关上 config 文件看看外面的内容

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: xxx
    server: https://kubernetes.docker.internal:6443
  name: docker-desktop
contexts:
- context:
    cluster: docker-desktop
    user: docker-desktop
  name: docker-desktop
current-context: docker-desktop
kind: Config
preferences: {}
users:
- name: docker-desktop
  user:
    client-certificate-data: xxx
    client-key-data: xxx

咱们会发现外面默认曾经有了一个叫 docker-desktop 的集群。

2、配置 k8s 多集群

咱们当初曾经有了一个叫 docker-desktop,那么咱们如何配置第 2 个集群的config 文件呢?
咱们能够这样做:
2.1、备份 config 文件

cp ~/.kube/config ~/.kube/config.bak

2.2、将 2 份 k8s config 文件合并成一份

KUBECONFIG=~/.kube/conifg:~/your-second-k8s-config-path/config kubectl config view -- flattern > /tmp/config

阐明:下面的 your-second-k8s-config-path 是你的第 2 个 k8s 集群 config 文件所在目录。

2.3、将合并好的 /tmp/config 文件替换成默认的 config 文件

mv /tmp/config ~/.kube/config

2.4、配置 config 文件的 current-context 属性

默认状况下,current-context值是docker-desktop,所以这里只有改成你第 2 个 k8s 集群名称即可。

current-context:your-k8s-cluster-name

这样就实现了所有配置,当初你能够通过 kubectl 命令查看第 2 个集群外面的内容了,如下所示:

➜  kubectl get po -nseaurl
NAME                                              READY   STATUS    RESTARTS   AGE
test-seaurl-webapp-79996476f9-8q2sc               1/1     Running   0          6h42m
testapi-seaurl-account-service-748887ddc4-82rtw   1/1     Running   0          123d
testapi-seaurl-auth-service-754c5b4449-mw9jj      1/1     Running   0          123d
testapi-seaurl-gatewayserver-64488b6f58-hngbk     1/1     Running   0          123d
testapi-seaurl-message-service-6fb5c4f5cb-2jj59   1/1     Running   0          123d
testapi-seaurl-notify-service-5776846f6d-sqdjb    1/1     Running   0          90d
testapi-seaurl-space-service-5d6b5dc4ff-lhqv4     1/1     Running   0          12d
testapi-seaurl-users-service-7b7b6575d7-tnf4g     1/1     Running   0          3d23h

总结

1、合并 k8s 的集群 config 文件网上有好多办法,感觉这种是最简略了吧

援用

解决 docker kubernetes 始终处于 starting 状态问题
疾速合并 2 个 kubectl config 文件
配置对多集群的拜访
主动合并 Kubeconfig,实现多 k8s 集群切换

正文完
 0