【问题标题】:Kubernetes: managing application run environmentsKubernetes:管理应用程序运行环境
【发布时间】:2016-09-30 03:53:12
【问题描述】:

与大多数应用程序一样,我们有三种不同的运行环境:

  • 生产
  • 分期/质量检查
  • 发展

这些基本上都是通过ENV变量配置的。

如何在我们的环境中运行所有服务/pod/容器最好?通过标签?还是命名空间?

【问题讨论】:

    标签: docker deployment kubernetes google-cloud-platform environment


    【解决方案1】:

    我不确定是否有官方的最佳实践,但我一直更喜欢使用命名空间来分隔环境,原因如下:

    1. 它允许您在所有三种环境中为您的部署、服务等使用完全相同的 YAML 文件。要切换环境,您只需将--namespace=${YOUR_NS} 添加到您的 kubectl 命令中,甚至只需为您的 kubectl 配置中的每个命名空间指定一个上下文,这样您就可以说类似kubectl config use-context production 的内容。查看docs

    2. 您可以使用Resource Quotas 来限制每个环境应该可用的计算资源量。

    3. 您可以使用RBAC 来控制对您的环境的访问。例如,您可以只允许一小部分人对生产环境进行更改,但让所有开发人员在您的开发环境中为所欲为。

    例如,您可以在每个命名空间内部使用标签将您的应用程序构建为不同的层。然后,此配置在每个环境中都是相同的。

    【讨论】:

      猜你喜欢
      • 2019-10-25
      • 2021-08-20
      • 2018-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-16
      • 2010-12-31
      相关资源
      最近更新 更多