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

Kubernetes: managing application run environments

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

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

如何最好地 运行 我们环境中的所有 services/pods/containers?通过标签?还是命名空间?

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

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

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

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

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