在 jenkins 作業 A 和 B 中,這兩個作業都在同一臺機器上執行到兩個不同的集群。當在兩個作業中輸入“kubectl config use-context”命令時。他們因以下錯誤而出錯。這怎么處理。
看起來 use-context 更改了檔案,并且從兩個作業中同時執行會導致問題。
在作業 A:
- kubectl config use-context arn:aws:eks:us-west-2:XYZXYZXYZ:cluster/ABC 錯誤:加載組態檔“/home/ubuntu/.kube/config”時出錯:yaml:第 29 行:找不到預期的' :'
在作業 B:
- kubectl config use-context arn:aws:eks:us-west-2:XYZXYZXYZ:cluster/CBD 錯誤:加載組態檔“/home/ubuntu/.kube/config”時出錯:yaml:第 29 行:找不到預期的' :'
uj5u.com熱心網友回復:
您不需要發出“使用背景關系”(是的,確實會寫入$KUBECONFIG)——kubectl 具有--context允許您指定每次呼叫使用的背景關系的引數:
# job A
$ kubectl --context "arn:aws:eks:us-west-2:XYZXYZXYZ:cluster/ABC" get nodes
# job B
$ kubectl --context "arn:aws:eks:us-west-2:XYZXYZXYZ:cluster/CBD" get nodes
但是,如果您有很多這樣的命令,那可能會變得乏味。在這種情況下,您可能更高興僅僅復制原件$KUBECONFIG,然后KUBECONFIG在作業中設定env-var 以指向您的本地,有效地一次性,一個:
cp ${KUBECONFIG:-$HOME/.kube/config} job-X.kubeconfig
export KUBECONFIG=$PWD/job-X.kubeconfig
# some copies of kubectl whine if the permissions are too broad
chmod 0600 $KUBECONFIG
# now your use-context is safe to perform
kubectl config use-context "arn:aws:eks:us-west-2:XYZXYZXYZ:cluster/ABC"
kubectl get nodes
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/374398.html
標籤:詹金斯 Kubernetes 运维 kubectl
上一篇:LINQ查詢表
