Kubernetes:pipe理应用程序运行环境
像大多数的应用程序一样,
- 生产
- 分期/ QA
- 发展
这些都是通过ENVvariables基本configuration的。
如何在我们的环境中运行所有的服务/容器/容器? 通过标签? 或命名空间?
我不确定是否有正式的最佳实践,但我一直倾向于使用命名空间分隔环境,原因如下:
-
它允许您在所有三种环境中为您的部署,服务等使用完全相同的YAML文件。 要切换环境,你所要做的就是将
--namespace=${YOUR_NS}
到你的kubectl命令中,或者甚至在你的kubectlconfiguration中为每个命名空间指定一个上下文,这样你就可以说kubectl config use-context production
。 查看文档 ! -
您可以使用资源配额来限制每个环境应该可用的计算资源的数量。
-
您可以使用RBAC来控制对环境的访问。 例如,您可以只允许一小部分人对生产环境进行更改,但是所有开发人员都可以在开发环境中执行任何他们想要的操作。
例如,在每个名称空间的内部,您可以使用标签将应用程序构build到不同的层中。 这种configuration在每个环境中都是一样的。