Kubernetes:管理应用程序 运行 环境
Kubernetes: managing application run environments
像大多数应用程序一样,我们有三个不同的 运行ning 环境:
- 生产
- 分期/质量检查
- 发展
这些基本都是通过ENV变量配置的
如何最好地 运行 我们环境中的所有 services/pods/containers?通过标签?还是命名空间?
我不确定是否有官方的最佳实践,但我一直倾向于使用命名空间来分隔环境,原因如下:
它允许您在所有三个环境中为您的部署、服务等使用完全相同的 YAML 文件。要切换环境,您所要做的就是将 --namespace=${YOUR_NS}
添加到您的 kubectl 命令中,甚至只需为您的 kubectl 配置中的每个命名空间指定一个上下文,这样您就可以说 kubectl config use-context production
之类的内容。查看 docs!
您可以使用 Resource Quotas 来限制每个环境应该可用的计算资源量。
您可以使用 RBAC 来控制对您的环境的访问。例如,您可以只允许一小部分人对生产环境进行更改,但让所有开发人员在您的开发环境中为所欲为。
例如,在每个命名空间内,您可以使用标签将您的应用程序组织成不同的层。此配置在每个环境中都是相同的。
像大多数应用程序一样,我们有三个不同的 运行ning 环境:
- 生产
- 分期/质量检查
- 发展
这些基本都是通过ENV变量配置的
如何最好地 运行 我们环境中的所有 services/pods/containers?通过标签?还是命名空间?
我不确定是否有官方的最佳实践,但我一直倾向于使用命名空间来分隔环境,原因如下:
它允许您在所有三个环境中为您的部署、服务等使用完全相同的 YAML 文件。要切换环境,您所要做的就是将
--namespace=${YOUR_NS}
添加到您的 kubectl 命令中,甚至只需为您的 kubectl 配置中的每个命名空间指定一个上下文,这样您就可以说kubectl config use-context production
之类的内容。查看 docs!您可以使用 Resource Quotas 来限制每个环境应该可用的计算资源量。
您可以使用 RBAC 来控制对您的环境的访问。例如,您可以只允许一小部分人对生产环境进行更改,但让所有开发人员在您的开发环境中为所欲为。
例如,在每个命名空间内,您可以使用标签将您的应用程序组织成不同的层。此配置在每个环境中都是相同的。