考虑一个简单的脚本:
kubectl create -f foo.yaml
kubectl expose deployment foo
似乎存在竞争条件,并且无法保证第二个命令的上下文在与第一个命令相同的上下文中运行。 (考虑用户在脚本运行时转到另一个shell并调用kubectl config set-context
。)如何解决?我如何确保一致性?
答案 0 :(得分:2)
我建议始终使用--context
标志:
$ kubectl options | grep context
--context='': The name of the kubeconfig context to use
对于每个kubectl
命令,以便定义上下文并防止问题中描述的问题:
ENV=<env_name>
kubectl create --context=$ENV -f foo.yaml
kubectl expose --context=$ENV deployment foo