背景
在使用k8s集群过程中,针对多个集群的情况,每次都是需要SSH到指定的master节点,然后执行对应的kubectl命令来操作集群,多个集群的情况下过于繁琐。我们可以通过本地的kubectl工具管理多个k8s集群,只需要将多个集群的链接信息配置在本地,就可以在本地随意切换k8s集群环境进行操作。
具体操作
kubectl管理多集群主要分为两个步骤,安装kubectl和配置多个集群信息,安装kubectl比较简单,这里就不再赘述,主要说明一下多个集群的配置方法,这里拿172.16.16.127这个测试环境距离
- config文件
安装好k8s集群之后,会生成对应的k8s配置文件,一般是在:~/.kube/config这个目录,如果没有对应的文件也可以找/etc/rancher/k3s/k3s.yaml(不同安装方式这个文件的位置可能不一样)
172.16.16.127上msater节点的k8s集群配置信息如下:
- 配置本地config
将远程config文件copy到~/.kube目录下,重命名(比如127-config)
修改对应的集群、用户名和上下文名称(自定义,可以直接使用一个值),server地址修改成远程master节点的IP地址即可
修改后的config文件如下:红框中为修改的部分
-
设置环境变量
配置好了config,需要将其设置到环境变量中,这样才可以被kubectl读取到
进入~/.kube目录下,
设置环境变量命令:KUBECONFIG=127-config kubectl config view --flatten > $HOME/.kube/config
如果有多个远程环境,多个config文件用:分割就行(我这里配置了三个环境)
KUBECONFIG=127-config:40-config:dev-config kubectl config view --flatten > $HOME/.kube/config
- 验证配置
在本地执行:kubectl config get-contexts命令,查看k8s管理的环境信息
我这里设置了三个环境,可以看到都展示出来了,*标识的是当前所在环境
本地执行kubectl相关命令,可以发现已经是远程环境的数据了
- 切换环境
执行:kubectl config use-context ids-40即可切换到ids-40环境