使用K8S来管理多个环境(QA,登台,生产,开发等)的良好做法是什么?
例如,假设一个团队正在开发一种产品,该产品需要部署一些API和一个前端应用程序。通常,这将需要至少两个环境:
- 登台:在发布/发布之前,用于迭代/测试和验证
- 生产:客户可以访问的环境。应包含稳定且经过测试的功能。
那么,假设团队正在使用Kubernetes,那么托管这些环境的良好做法是什么?到目前为止,我们考虑了两种选择:
- 在每个环境中使用K8s集群
- 仅使用一个K8s集群,并将其保留在不同的名称空间中。
(1)似乎是最安全的选择,因为它最大程度地降低了可能导致人为错误和机器故障的风险,而这种风险可能会使生产环境面临危险。但是,这伴随着更多主机的成本以及更多基础架构管理的成本。
(2)看起来它简化了基础架构和部署管理,因为只有一个集群,但是它提出了一些问题,例如:
- 如何确保人为错误会影响生产环境?
- 如何确保过渡环境中的高负载不会在生产环境中造成性能损失?
可能还有其他一些问题,因此我正在StackOverflow上与K8s社区联系,以更好地了解人们如何应对此类挑战。