Kubernetes:pipe理应用程序运行环境

像大多数的应用程序一样,

  • 生产
  • 分期/ QA
  • 发展

这些都是通过ENVvariables基本configuration的。

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

我不确定是否有正式的最佳实践,但我一直倾向于使用命名空间分隔环境,原因如下:

  1. 它允许您在所有三种环境中为您的部署,服务等使用完全相同的YAML文件。 要切换环境,你所要做的就是将--namespace=${YOUR_NS}到你的kubectl命令中,或者甚至在你的kubectlconfiguration中为每个命名空间指定一个上下文,这样你就可以说kubectl config use-context production 。 查看文档 !

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

  3. 您可以使用RBAC来控制对环境的访问。 例如,您可以只允许一小部分人对生产环境进行更改,但是所有开发人员都可以在开发环境中执行任何他们想要的操作。

例如,在每个名称空间的内部,您可以使用标签将应用程序构build到不同的层中。 这种configuration在每个环境中都是一样的。