k8s config多集群管理 (contexts)

# 查看
kubectl config get-contexts

# 创建
kubectl  config set-context my-context

# 修改
kubectl  config set-context my-context --namespace=my-namespace --cluster=kubernetes --user=kubernetes-admin

# 设置my-context为工作context
kubectl  config use-context my-context

# 删除context
kubectl  config delete-context my-context

# 重命名cibtext
kubectl config rename-context kubernetes-admin my-context

# cat ~/.kube/config 可以查看context证书

如何拼接

下载两个修改好信息的集群的config 文件.
拼接好的例子如下:

apiVersion: v1
clusters:
- cluster:
    # insecure-skip-tls-verify: true   #忽略tls验证 有了这个可以去掉下面的 ca 认证
    certificate-authority-data: "一长串信息"
    server: https://192.168.1.44:6443 //集群1的地址
  name: cluster1  //集群1名字
- cluster:  
    certificate-authority-data:  "一长串信息"
    server: https://192.168.1.144:6443 //集群2的地址
  name: cluster2  //集群2名字
contexts:
- context:
    cluster: cluster1   //集群用户
    user: kubernetes-admin1   //集群识别用户信息名
  name: cluster1   //集群名
- context:
    cluster: cluster2
    user: kubernetes-admin2
  name: cluster2
current-context: cluster1  //默认使用的集群
kind: Config
preferences: {}
users:
- name: kubernetes-admin1   //集群用户对应的登录信息
  user:
    client-certificate-data:  "一长串信息"
    client-key-data:  "一长串信息"
- name: kubernetes-admin2
  user:
    client-certificate-data:  "一长串信息"
    client-key-data:  "一长串信息"

最后把config复制到集群. 效果如下:

# kubectl config get-contexts
CURRENT   NAME       CLUSTER    AUTHINFO            NAMESPACE
*         cluster1   cluster1   kubernetes-admin1   
          cluster2   cluster2   kubernetes-admin2   

并且输入kubectl 命令都是正常能访问到cluser1上的信息.

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐