使用kubectl config控制多個k8s集群


在pipeline中的CD環節,有時候需要部署到不同的K8S集群,比如開發環境、測試環境、生產環境。此時可以使用kubectl config來進行多個集群的管理。

  • 開發環境集群
  • 生產環境集群
    為了方便,我們使用Jenkins本機作為agent來配置兩個K8S集群的認證文件,達到可以在本機上操作兩個集群的目的。

scp root@192.168.2.29:/etc/kubernetes/admin.conf ~/.kube/config-work-prod
scp root@10.61.150.19:/etc/kubernetes/admin.conf ~/.kube/config-work-dev

我們已經完成了配置的拷貝,但是為了便於管理,我們需要對這些配置中的命名進行修改規范;我們要修改這兩個配置文件,並着重關注三大要素:集群、上下文、用戶;

1. 修改集群名稱

2. 修改用戶名稱

3. 更新上下文名稱,關聯對應用戶及集群

#dev
- context:
    cluster: work-dev-cluster
    user: work-dev-admin
  name: kubernetes-dev

#prod
- context:
    cluster: work-prod-cluster
    user: work-dev-admin
  name: kubernetes-prod

4. 將修改好的配置文件寫入環境變量

vim ~/.bash_profile
export KUBECONFIG=$HOME/.kube/config-work-dev:$HOME/.kube/config-work-prod
source ~/.bash_profile
echo $KUBECONFIG
kubectl config get-contexts

CURRENT   NAME              CLUSTER            AUTHINFO           NAMESPACE
          kubernetes-dev    work-dev-cluster   work-dev-admin
          kubernetes-prod   kubernetes         kubernetes-admin

5. 或取全局上下文

kubectl config get-contexts

6. 獲取當前K8S上下文

kubectl config current-context

7. 切換當前上下文

kubectl config use-context kubernetes-dev

8. kubectl config 命令見幫助信息

current-context 顯示 current_context
delete-cluster 刪除 kubeconfig 文件中指定的集群
delete-context 刪除 kubeconfig 文件中指定的 context
get-clusters 顯示 kubeconfig 文件中定義的集群
get-contexts 描述一個或多個 contexts
rename-context Renames a context from the kubeconfig file.
set 設置 kubeconfig 文件中的一個單個值
set-cluster 設置 kubeconfig 文件中的一個集群條目
set-context 設置 kubeconfig 文件中的一個 context 條目
set-credentials 設置 kubeconfig 文件中的一個用戶條目
unset 取消設置 kubeconfig 文件中的一個單個值
use-context 設置 kubeconfig 文件中的當前上下文
view 顯示合並的 kubeconfig 配置或一個指定的 kubeconfig 文件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM