【问题标题】:Kubernetes: How to manage multiple separate deployments of the same appKubernetes:如何管理同一应用程序的多个单独部署
【发布时间】:2020-07-13 05:42:00
【问题描述】:

我们正在将应用程序的部署从使用虚拟机迁移到 Kubernetes,由于我对 Kubernetes 的了解非常有限,我不知道如何为多个客户端设置部署。 现在我们为每个客户端都有一个单独的虚拟机,但是如何在 Kubernetes 中以一种成本和资源高效且易于管理的方式分离客户端?

我设法使用命名空间创建了开发和登台环境,这很好用。 要更新 dev 和 staging 部署,我只需使用 kubectl apply -f <file> --namespace staging

现在我需要为多个客户(50 多个)将应用部署到生产环境。它们应该彼此完全分开(使用单独的环境变量和机密),而代码应该相同。而且我不知道实现这一目标的最佳方法是什么。

能否请您提示我在 Kubernetes 中正确的方法是什么?

【问题讨论】:

    标签: kubernetes kubectl


    【解决方案1】:

    您可以使用Kustomize。它为配置定制提供了纯粹的声明式方法,以管理任意数量的明确定制的 Kubernetes 配置。

    https://github.com/kubernetes-sigs/kustomize/tree/master/examples

    【讨论】:

    • 感谢您的回复。 Kustomize 似乎非常有用且很棒。以后我肯定会花一些时间来学习它,但你能告诉我它是否可以让我只更新所有客户端的部署,而无需在代码中的某个地方对所有这些部署进行硬编码?因为如果仍然需要我对所有这些进行硬编码,那么我将坚持在 kubectl apply -f <file> --namespace <client> 命令中对它们进行硬编码以节省时间。
    【解决方案2】:
    • 客户提供一个(或一组命名空间)
    • kustomize 有一个非常好的模式系统来处理通用配置和客户端的一些适应
    • 使用NetworkPolicy 隔离客户端之间的网络

    【讨论】:

      猜你喜欢
      • 2017-05-18
      • 1970-01-01
      • 2015-09-16
      • 2016-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-12
      相关资源
      最近更新 更多