同时输入 "kubectl config use-context" 到两个不同的集群会导致 jenkins 作业出现问题

entering "kubectl config use-context" to two different clusters at the same time causes issues in jenkins jobs

在 jenkins 作业 A 和 B 中,这两个作业都在同一台机器上执行到两个不同的集群。当在两个作业中输入“kubectl config use-context”命令时。他们因以下错误而出错。如何处理。

看起来 use-context 更改了文件并从两个作业同时执行会导致问题。

工作A:

工作 B:

您不需要发出“use-context”(是的,确实写入 $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