停止部署错误的 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 获取更多详细信息。
我们有一组 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 havekubectl --kubeconfig .kube/cluster1 apply -k environ/cluster1
or even shorter:deploy.sh env1
wheredeploy.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 获取更多详细信息。