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

标签 docker deployment kubernetes google-cloud-platform environment

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

  • 生产
  • 分期/质量检查
  • 开发

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

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

最佳答案

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

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

  2. 您可以使用Resource Quotas对每个环境可用的计算资源量进行限制。

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

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

关于docker - Kubernetes:管理应用程序运行环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39783411/

相关文章:

kubernetes - Kompose不会为openzipkin和Elastic启用本地主机

docker - 使用 docker stack deploy 启动时在 Kubernetes 中使用私有(private)注册表 docker 镜像

reactjs - Kubernetes中的后端/前端服务之间没有通信

postgresql - 在已包含在DockerFile中的postgresql docker中运行sql脚本

git - 从 git 部署到 Azure 时,如何存储我的 secret ?

java - Maven 部署抛出错误

python - 如何在 linux 中为共享的公司环境部署一个简单的 python 应用程序?

kubernetes - Skaffold 以什么顺序启动部署,有没有办法指定顺序?

docker - Nexus 3 : "Remote Connection Pending..." for docker hub

kubernetes - 与 Docker 镜像相比,使用 Helm chart 部署到 Kubernetes 集群有什么优势?