我有一个脚本将我的应用程序部署到我的kubernetes集群。但是,如果我当前的kubectl上下文指向错误的集群,那么我很容易最终将应用程序部署到我不打算部署到的集群中。 (从脚本内部)检查要部署到正确集群的一种好方法是什么?
我真的不想硬编码一个特定的kubectl上下文名称,因为我们团队中的不同开发人员对于如何命名其kubectl上下文有不同的约定。
相反,我想要更像if $(kubectl get cluster-name) != "expected-clsuter-name" then error
的东西。
答案 0 :(得分:2)
#!/bin/bash
if [ $(kubectl config current-context) != "your-cluster-name" ]
then
echo "Do some error!!!"
return
fi
echo "Do some kubectl command"
上面的脚本获取群集名称并与your-desired-cluster
名称匹配。如果不匹配,则给出错误。否则,运行desire kubectl命令。
答案 1 :(得分:1)
对于每个集群,运行一次kubectl cluster-info
即可看到what the IP/host for master is-这对于集群来说应该是稳定的,并且不会随kubectl上下文中的名称而有所不同(开发人员的设置可能有所不同)。然后使用export MASTERA=<HOST/IP>
在脚本中捕获该脚本,该脚本是群集A的主脚本。然后脚本可以执行以下操作:
kubectl cluster-info | grep -q $MASTERA && echo 'on MASTERA'
if kubectl cluster-info | grep -q $MASTERA; then
echo 'on $MASTERA'
else
exit 1
fi