多K8s叢集切換:Kubectl客戶端配置全記錄

hugotu發表於2020-04-30

kubectl的配置檔案位置

kubectl配置檔案的主要位置是$ HOME / .kube,預設情況下,我們有一個名為config的配置檔案:

[node1 ~]$ cd $HOME/.kube[node1 .kube]$ ls -lahtotal 4.0Kdrwxr-xr-x 1 root root  37 Mar 12 20:48 .dr-xr-x--- 1 root root  19 Nov 29 11:46 ..drwxr-x--- 3 root root  23 Mar 12 20:48 cachelrwxrwxrwx 1 root root  26 Nov 29 11:46 config -> /etc/kubernetes/admin.confdrwxr-x--- 3 root root 4.0K Mar 12 20:48 http-cache

多個配置檔案和KUBECONFIG變數

透過設定適當的KUBECONFIG shell變數,我們可以擁有多個配置檔案。

例如:

export KUBECONFIG=$KUBECONFIG:/root/.kube/additional_config

從kubectl檢查配置

我們可以檢查當前的配置(由於我的Additional_config檔案中沒有任何內容,因此將為空-我們稍後將新增一些內容-這只是我的KUBECONFIG變數中的檔案):

[node1 ~]$ kubectl config viewapiVersion: v1clusters: []contexts: []current-context: ""kind: Configpreferences: {}users: []

或來自特定檔案-讓我們看看預設檔案:

[node1 ~]$ kubectl config --kubeconfig=.kube/config viewapiVersion: v1clusters:- cluster:    certificate-authority-data: DATA+OMITTED    server: https://192.168.0.38:6443  name: kubernetescontexts:- context:    cluster: kubernetes    user: kubernetes-admin  name: kubernetes-admin@kubernetescurrent-context: kubernetes-admin@kuberneteskind: Configpreferences: {}users:- name: kubernetes-admin  user:    client-certificate-data: REDACTED    client-key-data: REDACTED

如果您未設定KUBECONFIG變數,則所有配置都將從$ HOME / .kube / config中獲取

kubectl配置中的物件

kubectl在其配置檔案中具有以下物件型別

叢集-有關K8s叢集的資訊-包含群集名稱和連線引數

users-有關您要連線到K8s叢集的使用者的資訊

上下文-叢集/使用者/名稱空間的三倍

從kubectl修改配置

新增叢集

[node1 ~]$ kubectl config --kubeconfig=.kube/additional_config set-cluster dev --server=https://192.168.1.100 --certificate-authority=fake-caCluster "dev" set.[node1 ~]$ kubectl config --kubeconfig=.kube/additional_config set-cluster prod --server= --certificate-authority=fake-caCluster "prod" set.

新增使用者

[node1 ~]$ kubectl config --kubeconfig=.kube/additional_config set-credentials developer --client-certificate=fake-cert-file --client-key=fake-key-seefileUser "developer" set.[node1 ~]$ kubectl config --kubeconfig=.kube/additional_config set-credentials prod_admin --client-certificate=fake-cert-file --client-key=fake-key-seefileUser "prod_admin" set.

新增上下文

[node1 ~]$ kubectl config --kubeconfig=.kube/additional_config set-context simple_app_development --cluster=dev --namespace=simple_app_dev --user=developerContext "simple_app_development" created.[node1 ~]$ kubectl config --kubeconfig=.kube/additional_config set-context simple_app_production --cluster=prod --namespace=simple_app_prod --user=prod_adminContext "simple_app_production" created.

從配置中刪除叢集/使用者/上下文

kubectl --kubeconfig=.kube/additional_config config unset users.<name>kubectl --kubeconfig=.kube/additional_config config unset clusters.<name>kubectl --kubeconfig=.kube/additional_config config unset contexts.<name>

樣本配置

[node1 ~]$ kubectl config --kubeconfig=.kube/additional_config viewapiVersion: v1clusters:- cluster:    certificate-authority: /root/fake-ca    server: https://192.168.1.100  name: dev- cluster:    certificate-authority: /root/fake-ca    server:   name: prodcontexts:- context:    cluster: dev    namespace: simple_app_dev    user: developer  name: simple_app_development- context:    cluster: prod    namespace: simple_app_prod    user: prod_admin  name: simple_app_productioncurrent-context: ""kind: Configpreferences: {}users:- name: developer  user:    client-certificate: /root/fake-cert-file    client-key: /root/fake-key-seefile- name: prod_admin  user:    client-certificate: /root/fake-cert-file    client-key: /root/fake-key-seefile

改變環境

要獲取上下文列表(不需要--kubeconfig,因為我們已將extra_config新增到KUBECONFIG變數中):

[node1 ~]$ kubectl config get-contextsCURRENT  NAME                    CLUSTER  AUTHINFO    NAMESPACE          simple_app_development  dev      developer    simple_app_dev          simple_app_production    prod      prod_admin  simple_app_prod

設定上下文:

[node1 ~]$ kubectl config use-context simple_app_developmentSwitched to context "simple_app_development".

獲取當前上下文:

[node1 ~]$ kubectl config current-contextsimple_app_development

                               歡迎關注開源村公眾號瞭解更多技術開源資訊和技術分享


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31490593/viewspace-2689603/,如需轉載,請註明出處,否則將追究法律責任。

相關文章