kubectl 在一个配置文件中配置多个环境信息,然后可以切换操作:

先看如下配置文件

apiVersion: v1
kind: Config
clusters:
- name: "myk8s"
  cluster:
    server: "https://rancher.shanhy.com/k8s/clusters/c-97hgz"
    certificate-authority-data: "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJpRENDQ\
      VM2Z0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQTdNUnd3R2dZRFZRUUtFeE5rZVc1aGJXbGoKY\
      …………………省略…………………
      jRHMDNJV0Ixb1NTaWJDNHNwd0xXQkorQUloQU9NRngrRFJYZVlONTZpVDRSR2JzUElXMzQ2Vwo4Y\
      ndDb0IvK2Zvd2JNQXRYCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0="
- name: "myk8s-middleware2"
  cluster:
    server: "https://192.168.1.122:6443"
    certificate-authority-data: "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN3akNDQ\
      WFxZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFTTVJBd0RnWURWUVFERXdkcmRXSmwKT\
      …………………省略…………………
      XFJUmRnaXBLMElmUDBoYnlFMUZlN0swMTJsaUlyYzlSWkVYYVpUUEE9Ci0tLS0tRU5EIENFUlRJR\
      klDQVRFLS0tLS0K"
- name: "myk8s-server04"
  cluster:
    server: "https://192.168.1.142:6443"
    certificate-authority-data: "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN3akNDQ\
      WFxZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFTTVJBd0RnWURWUVFERXdkcmRXSmwKT\
      …………………省略…………………
      XFJUmRnaXBLMElmUDBoYnlFMUZlN0swMTJsaUlyYzlSWkVYYVpUUEE9Ci0tLS0tRU5EIENFUlRJR\
      klDQVRFLS0tLS0K"
- name: "myk8s-middleware3"
  cluster:
    server: "https://192.168.1.129:6443"
    certificate-authority-data: "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN3akNDQ\
      WFxZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFTTVJBd0RnWURWUVFERXdkcmRXSmwKT\
      …………………省略…………………
      XFJUmRnaXBLMElmUDBoYnlFMUZlN0swMTJsaUlyYzlSWkVYYVpUUEE9Ci0tLS0tRU5EIENFUlRJR\
      klDQVRFLS0tLS0K"

users:
- name: "myk8s"
  user:
    token: "kubeconfig-user-rmz6q.c-97hgz:29z89ns8whhgq8zptgbtkgg8rnq86hcxnb75rm5t4ptt7l57cfvwlv"


contexts:
- name: "myk8s"
  context:
    user: "myk8s"
    cluster: "myk8s"
- name: "myk8s-middleware2"
  context:
    user: "myk8s"
    cluster: "myk8s-middleware2"
- name: "myk8s-server04"
  context:
    user: "myk8s"
    cluster: "myk8s-server04"
- name: "myk8s-middleware3"
  context:
    user: "myk8s"
    cluster: "myk8s-middleware3"

current-context: "myk8s"

以上配置文件中的证书通过字符串的方式配置在 config 文件中,如果不想写具体的字符串,本地有证书文件,则可以通过 client-certificateclient-key 来设置证书路径的方式使用,如下所示:

- name: "myk8s-middleware3"
  cluster:
    server: "https://192.168.1.129:6443"
    client-certificate: /etc/kubernetes/ssl/kube-controller-manager.pem
    client-key: /etc/kubernetes/ssl/kube-controller-manager-key.pem

在配置文件中定义了4个 context 环境,分别为 myk8smyk8s-middleware2myk8s-server04myk8s-middleware3,下面为切换环境的命令示例:

[root@middleware3 .kube]# kubectl config use-context myk8s-middleware2
Switched to context "myk8s-middleware2".
[root@middleware3 .kube]# kubectl get nodes
NAME          STATUS   ROLES                      AGE    VERSION
middleware    Ready    <none>                     3h9m   v1.19.4
middleware2   Ready    controlplane,etcd,worker   547d   v1.19.4
middleware3   Ready    controlplane,etcd,worker   547d   v1.19.4
server01      Ready    worker                     547d   v1.19.4
server02      Ready    worker                     547d   v1.19.4
server03      Ready    worker                     547d   v1.19.4
server04      Ready    controlplane,etcd,worker   172d   v1.19.4
[root@middleware3 .kube]# 

(END)

Logo

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

更多推荐