【问题标题】:Way to stop deploy wrong kubernetes environment停止部署错误 Kubernetes 环境的方法
【发布时间】:2021-01-19 09:45:28
【问题描述】:

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

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

【问题讨论】:

  • 如果你是kubectl,你怎么知道是错误的环境?
  • 所以我认为可能是一些 bash 别名来防止错误部署? Bash 可以获取当前的 kubectl 内容。
  • 我会为每个集群使用 shell 脚本和不同的配置,就像这样:deploy-cluster1.sh 我有 kubectl --kubeconfig .kube/cluster1 apply -k environ/cluster1 甚至更短:deploy.sh env1 其中deploy.sh 包含:@987654333 @kubernetes.io/docs/concepts/configuration/…
  • @VASャ 是的,这是一个好方法。谢谢。

标签: kubernetes kubectl kustomize


【解决方案1】:

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

如果您意识到自己犯了错误并想立即取消命令,那么您可以选择以下几种方式:

  • $ kill -9 $! 将杀死该命令最近执行的进程($! 表示其进程 ID)。

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

编辑:

包括VASャ从cmets提出的解决方案:

我会为每个集群使用 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

【讨论】:

  • 不,在k apply 之后再kill 为时已晚。所以我认为关键是要在真正的apply之前有效。
  • 我明白了。那么,VASャ提出的方案会不会更适合你?
  • 那太好了。而且参考链接也挺有用的。
【解决方案2】:

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

direnv 可以在切换到不同目录后更改环境,这迫使我切换KUBECONFIG 环境。关注Mastering the KUBECONFIG file了解更多详情。

【讨论】:

    猜你喜欢
    • 2022-06-28
    • 2021-05-20
    • 1970-01-01
    • 2020-05-13
    • 2019-11-10
    • 1970-01-01
    • 1970-01-01
    • 2019-04-15
    • 1970-01-01
    相关资源
    最近更新 更多