【发布时间】:2016-09-08 22:17:35
【问题描述】:
我正在使用 Kubernetes 开发一个新项目,我需要三个环境:DEV、QA 和 PROD。
最推荐的是,创建多个集群或创建一个大集群,按命名空间分隔环境。
【问题讨论】:
标签: networking kubernetes
我正在使用 Kubernetes 开发一个新项目,我需要三个环境:DEV、QA 和 PROD。
最推荐的是,创建多个集群或创建一个大集群,按命名空间分隔环境。
【问题讨论】:
标签: networking kubernetes
您是要拥有一个 prod 集群还是多个 prod 集群?需要考虑的一件事是更新集群管理软件(到新的 k8s 版本)可能会影响您的应用程序。如果您只计划拥有一个 prod 集群,我建议您分别运行 qa 和 dev 以便您可以先升级这些集群以解决任何问题。如果您将拥有多个 prod 集群,那么您可以一次升级它们以确保应用程序可用性并在环境之间共享集群更有意义。
【讨论】:
命名空间不会给你带来孤立,目前它只是 dns 中的一个不同的子域。每个应用程序最好有命名空间。 我强烈建议您为 prod 设置两个集群(在更新 k8s 的情况下)和一个用于 dev/qa 的集群。
【讨论】:
我想强调一些优点/缺点:
拥有多个集群的原因
- 生产/开发/测试分离:尤其适用于测试新版本的 Kubernetes、服务网格、其他集群软件
- 合规性:根据某些规定,某些应用程序必须在单独的集群/单独的 VPN 中运行
- 更好的安全隔离
- 云/本地:在本地服务之间分配负载
拥有单个集群的原因
- 减少设置、维护和管理开销
- 提高利用率
- 降低成本
考虑到一个不太昂贵的环境,平均维护,但仍确保生产应用程序的安全隔离,我建议:
【讨论】:
绝对同意您需要多个集群: 任何对 k8s 至关重要的东西,在升级过程中可能会失败,或者因为你在某个地方搞砸了,都会影响整个集群。
例如,我遇到了一个 DNS 问题,它在我的集群中造成了严重破坏;所有命名空间都受到影响。
升级通常没什么大不了的,但有一天你可能会遇到障碍;如果 kubelet 失败的时间过长,你的 pod 就会被杀死。
因此,最好先升级您的测试/开发环境,然后再升级到 prod。
【讨论】: