问题描述
我们有一组由 kustomize
管理的 kubernetes yaml,它们将部署到不同的集群。每个集群都略有不同,这意味着每个环境都有一个子目录 (environ/<envname>
),包括一些特殊的自定义覆盖。
我们将通过命令 kubeclt apply -k environ/env
手动将新版本部署到不同的环境。但有时我们会做这样的蠢事: kubectl apply -k environ/env1
到集群 env2
。那么有什么方法可以停止对错误环境执行 kubectl apply
操作吗?
解决方法
这是一个社区维基答案。随意扩展它。
如果您意识到自己犯了一个错误并想立即取消该命令,那么有一些选项可供您选择:
-
$ kill -9 $!
将杀死该命令最近执行的进程($!
代表其进程 ID)。 -
按
Ctrl+z
暂停当前进程,然后使用kill -9 %%
或kill -9 %+
终止它。有关此方法的更多详细信息,请参见 here。
编辑:
在评论中包含 VASャ 提出的解决方案:
我会为每个集群使用 shell 脚本和不同的配置,比如
那个:deploy-cluster1.sh
其中我有 kubectl --kubeconfig .kube/cluster1 apply -k environ/cluster1
或更短:deploy.sh env1
其中 deploy.sh
包含:kubectl --kubeconfig .kube/$1 apply -k environ/$1
有关该方法的更多详细信息,请参见 here。