像大多数应用程序一样,我们有三个不同的运行环境:
- 生产
- 分期/质量检查
- 开发
这些基本上都是通过ENV变量配置的。
如何最好地在我们的环境中运行所有服务/pod/容器?通过标签?或者命名空间?
最佳答案
我不确定是否有官方的最佳实践,但我一直更喜欢使用命名空间来分隔环境,原因如下:
它允许您在所有三个环境中为部署、服务等使用完全相同的 YAML 文件。要切换环境,您所要做的就是将
--namespace=${YOUR_NS}
添加到您的 kubectl 命令中,甚至只需为 kubectl 配置中的每个命名空间指定一个上下文,这样您就可以说类似kubectl 配置使用上下文生产
。查看docs !您可以使用Resource Quotas对每个环境可用的计算资源量进行限制。
您可以使用 RBAC控制对您的环境的访问。例如,您可以只允许一小部分人对生产环境进行更改,但让所有开发人员在您的开发环境中为所欲为。
例如,在每个命名空间内,您可以使用标签将应用程序构建为不同的层。此配置在每个环境中都是相同的。
关于docker - Kubernetes:管理应用程序运行环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39783411/