停止部署错误的 kubernetes 环境的方法

Way to stop deploy wrong kubernetes environment

我们有一组 kubernetes yaml,由 kustomize 管理,它们将部署到不同的集群。每个集群都略有不同,这意味着每个环境都有一个子目录 (environ/<envname>),包括一些特殊的 kustomization 覆盖。

我们将通过命令kubeclt apply -k environ/env手动将新版本部署到不同的环境。但有时我们会做这样愚蠢的事情: kubectl apply -k environ/env1 到集群 env2 。那么有什么方法可以停止对错误的环境执行 kubectl apply 操作吗?

这是一个社区维基答案。随意扩展它。

如果您意识到自己犯了错误并想立即取消命令,那么有一些选项适合您:

  • $ kill -9 $!会杀掉该命令最近执行的进程($!代表其进程ID)。

  • Ctrl+z 暂停当前进程,然后使用 kill -9 %%kill -9 %+ 终止它。有关此方法的更多详细信息,请参见 here.

编辑:

包括评论中VASya提出的方案:

I'd use shell scripts and different configs for each cluster, like that: deploy-cluster1.sh where I'd have kubectl --kubeconfig .kube/cluster1 apply -k environ/cluster1 or even shorter: deploy.sh env1 where deploy.sh contains: kubectl --kubeconfig .kube/ apply -k environ/

可以找到有关该方法的更多详细信息 here

最近我在这里得到了一个新的解决方案。

direnv which can change env after switch into different directories this force me to switch the KUBECONFIG env. Follow Mastering the KUBECONFIG file 获取更多详细信息。