今天在rancher平台上进行日常维护。在多个集群切换时,鼠标一顿点点点还是有点不够顺畅。于是在"瑞斯拜"的chrome里面找到了k8s有关多集群访问配置的桥段,下面根据实践过程做简单描述
使用 kubeconfig 文件组织集群访问
通过
kubectl
连接k8s集群时,默认情况下,kubectl
会在$HOME/.kube
目录下查找名为config
的文件,我直接root用户登录的、我的config
配置文件路径为~/.kube/config
下面贴上具体的配置和简要注释
apiVersion: v1
kind: Config
clusters:
- name: "fralychen" # 集群名称、下面的contexts里面的cluster:value值对应
cluster:
server: "https://rancher.fralychen.com/k8s/clusters/a-99abr"
users:
- name: "fralychen" # 用户名称、下面的contexts里面的user:value值对应
user:
token: "****"
contexts:
- name: "fralychen" # 上下文名称、在命令行中做集群切换时会用到
context:
user: "fralychen"
cluster: "fralychen"
current-context: "fralychen" # 当前正在使用的上下文名称、表示kubectl连接的集群为fralychen
配置对多集群的访问
在将集群、用户和上下文定义在一个或多个配置文件中之后,用户可以使用
kubectl config use-context
命令快速地在集群之间进行切换。rancher针对每个集群都有对应的kubeconfig文件,文件中连接的用户(user)名、集群(cluster)名、上下文(contexts)都是对应的,我这边根据字段一一添加到~/.kube/config
文件中即可
apiVersion: v1
kind: Config
clusters:
- name: "fralychen"
cluster:
server: "https://rancher.fralychen.com/k8s/clusters/a-99abr"
- name: "fralychen1" # 这是新加的
cluster:
server: "https://rancher.fralychen.com/k8s/clusters/c-t8nci"
users:
- name: "fralychen"
user:
token: "****"
- name: "fralychen1" # 这是新加的
user:
token: "***"
contexts:
- name: "fralychen"
context:
user: "fralychen"
cluster: "fralychen"
- name: "fralychen1" # 这是新加的
context:
user: "fralychen1"
cluster: "fralychen1"
current-context: "fralychen"
集群切换
kubectl config view
#查看config配置信息
.... # 省略输出
kubectl config user-context fralychen1
#切换集群
Switched to context "fralychen1". # 表示切换成功
F&Q
如果不是rancher平台怎么配置多集群访问
配置一致,但需要注意用户验证这一块、rancher这边是使用计算好的tokeen值对k8s集群进行连接的,如果通过原生kubectl连接的话需要配置连接的用户信息(username、password),下面是官方的命令行配置参考
kubectl config --kubeconfig=config-demo set-credentials experimenter --username=exp --password=some-password
可以直接通过kubectl管理多集群的连接信息么
可以的
- 要删除用户,可以运行 kubectl --kubeconfig=config-demo config unset users.
- 要删除集群,可以运行 kubectl --kubeconfig=config-demo config unset clusters.
- 要删除上下文,可以运行 kubectl --kubeconfig=config-demo config unset contexts.
有问题可留言,欢迎各种跨白