实际工作中,会有多个k8s集群,就需要有台服务器可以同时访问多个集群。
方式:将多个集群的config信息存放到一个文件中,通过使用 kubectl config use-context
context_name 来访问集群。
配置config文件
config-1修改配置如下,config2、config3、config-n…的配置都借鉴config1。注意:不通config文件修改的内容不要一模一样。例如:config1中的name为:40-k8s 其他config文件就不要为40-k8s
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
apiVersion: v1
clusters:
- cluster:
certificate-authority-data:
server: https://172.16.77.40:6443
name: 40-k8s
contexts:
- context:
cluster: 40-k8s
user: 40-admin
name: 40-k8s
current-context: context-cluster1-admin
kind: Config
preferences: {}
users:
- name: 40-admin
user:
client-certificate-data:
client-key-data:
|
文件合成
1
2
|
cd $HOME/.kube/
KUBECONFIG=config-1:config-2:config-3:config-4:config-5 kubectl config view --flatten > $HOME/.kube/config
|
验证
查看cluster name以及context name
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
$ kubectl config view
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://172.16.77.40:6443
name: 40-k8s
......
contexts:
- context:
cluster: 40-k8s
namespace: default
user: admin
name: 40-k8s
.....
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
$ kubectl config get-clusters
NAME
....
53-k8s
40-k8s
....
$ kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
......
* 40-k8s 40-k8s admin default
53-k8s 53-k8s 53-admin
.....
|
查看当前使用的集群
1
2
|
$ kubectl config current-context
40-k8s
|
切换集群
1
2
|
$ kubectl config use-context 53-k8s
Switched to context "53-k8s".
|
至此验证成功
可以配合kubectx、kubens、fzf使用,有兴趣的可以试一下
kubectx
Author
dylan
LastMod
2020-03-21
License
如需转载请注明文章作者和出处。谢谢!