情景和思路
当需要接入多个kubernetes集群的情况,如果使用--kubeconfig进行指定config file后执行kubectl命令会比较麻烦。可以使用kubectl config use-context ${context_name}
命令进行切换context,从而实现一个config file文件能连接多个cluster的功能,当然一个时间段内是只能连接一个的。
配置文件路径
配置文件一般名称为config
,放置路径为$HOME/.kube/
目录下。
cluster,定义cluster名称,认证信息等。
users,定义users的名称,认证信息等。
contexts,关联了cluster和user的信息。
在原有集群上追加额外集群信息
原有配置信息
1 | apiVersion: v1 |
追加第二个集群的信息
- 在
clusters
字段内定义了name
字段,区分了两个不同的集群,一个是k3s
,一个是kubernetes
。 - 在
users
字段内定义了两个user,一个是340933575320448663
,一个是default
。可以看出第一个user信息使用密钥方式登录;第二个使用用户名和密码登录 - 通过
contexts
字段内可以看到将cluster
和name
进行了关联,kubernetes
集群指定user采用340933575320448663
上下文信息;k3s
集群指定user使用default
的上下文。 - 还有一个独立的字段是
current-context
,表示当前配置文件采用哪个context,下面配置文件是使用的k3s
,那么此时当使用命令kubectl
操作集群的时候,是去连接k3s这个集群。
1 | apiVersion: v1 |
切换成另外一个集群
使用命令kubectl config use-context ${context_name}
比如当前我的context_name为k3s,要切换成配置中的kubernetes,则使用命令kubectl config use-context kubernetes
1 | PS C:\Users\hysan\.kube> kubectl config use-context kubernetes |
此时使用kubectl命令,则连接到了kubernetes这个集群。
手动命令行进行配置三大件
查看refer官方文档。
refer:
https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/