同时输入 "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:
- kubectl 配置使用上下文 arn:aws:eks:us-west-2:XYZXYZXYZ:cluster/ABC
错误:加载配置文件“/home/ubuntu/.kube/config”时出错:yaml:第 29 行:找不到预期的 ':'
工作 B:
- kubectl 配置使用上下文 arn:aws:eks:us-west-2:XYZXYZXYZ:cluster/CBD
错误:加载配置文件“/home/ubuntu/.kube/config”时出错:yaml:第 29 行:找不到预期的 ':'
您不需要发出“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
在 jenkins 作业 A 和 B 中,这两个作业都在同一台机器上执行到两个不同的集群。当在两个作业中输入“kubectl config use-context”命令时。他们因以下错误而出错。如何处理。
看起来 use-context 更改了文件并从两个作业同时执行会导致问题。
工作A:
- kubectl 配置使用上下文 arn:aws:eks:us-west-2:XYZXYZXYZ:cluster/ABC 错误:加载配置文件“/home/ubuntu/.kube/config”时出错:yaml:第 29 行:找不到预期的 ':'
工作 B:
- kubectl 配置使用上下文 arn:aws:eks:us-west-2:XYZXYZXYZ:cluster/CBD 错误:加载配置文件“/home/ubuntu/.kube/config”时出错:yaml:第 29 行:找不到预期的 ':'
您不需要发出“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