kubernetes的kubeconfig配置文件及contexts切换
{{moment(1556079499000).format('MMM DD, YYYY, h:mm')}}
Linux
Kubernetes
k8s
Kubeconfig
Kubernetes的kubeconfig配置文件用于使用kubectl CLI
,并允许您通过kubeconfig配置文件远程连接,控制群集。kubeconfig配置文件是存储在每个群集的kubectl-configs
中。
基本用法
要将kubectl
与没有任何配置的集群一起使用,只需使用--kubeconfig
选项。
1
| kubectl --kubeconfig kubectl-configs/<config-file> get pods
|
高级用法
为每个命令手动指定配置文件可能会有的麻烦。
可以将KUBECONFIG
环境变量设置为以下格式的配置文件列表:config-1:config-2:config-3
现在,所有文件都已合并,您可以通过上下文在它们之间切换。 例如:
1 2 3 4 5 6 7 8
| # 显示当前使用的context kubectl config current-context # 比如切换到使用aliyun-k8s,就会本地kubectl cli连接到aliyun-k8s集群 kubectl config use-context aliyun-k8s # 显示aliyun-k8s集群的pods kubectl get pods
|
更多命令可以通过kubectl config --help
查看。
通常情况下,我们本地开发机器会搭建kubernets,同时本地的测试机器环境也会搭建kubernets,线上也会搭建很多个kubernets集群环境。
因为kubernets去读取context的时候,如果设置了全局环境变量KUBECONFIG
,他就会优先使用这个全局环境变量对应的配置文件,如果没有设置就会去找$HOME/.kube/config
这个配置文件。
如果需要在本地管理连接这些kubernets,那么可以把对应的kubernets的配置文件:$HOME/.kube/config
导出来,下载导本地,再跟本地的配置文件合并。
以本地测试机器为例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| #登录到测试机器,导出配置文件 kubectl config view --raw > office-test.conf # 下载office-test.conf到本地电脑,然后修改环境变量配置文件,比如:vim ~/.bash_profile export KUBECONFIG=/Users/xx/.kube/office-test.conf:/Users/xx/.kube/config # 更新环境变量文件 source ~/.bash_profile # 新开一个命令行终端,执行导入合并文件 kubectl config view --raw > combined.conf # 注释掉KUBECONFIG这个环境变量并source更新,然后再把combined.conf复制到$HOME/.kube/config` #可以看到最新的合并了的contexts kubectl config get-contexts #切换context为 office-test kubectl config set-context office-test #获取对应的pods,校验是否切换连接成功 kubectl get pods
|