gpt4 book ai didi

azure - 测试和生产可以共享同一个云kubernetes环境吗?

转载 作者:行者123 更新时间:2023-12-03 01:02:39 25 4
gpt4 key购买 nike

我已经创建了一个 kubernetes 集群,并成功部署了 Spring Boot 应用程序 + nginx 反向代理以进行测试。

现在我要转向生产,测试和生产之间的唯一区别是数据库的连接和 nginx 基本身份验证(当然扩展参数也不同)。

在这种情况下,考虑到我使用的是云提供商基础设施,kubernetes 的最佳实践是什么?我应该仅为产品创建一个新集群吗?或者我可以使用相同的集群并使用标签来识别测试和生产机器?

目前拥有 2 个集群对我来说似乎是一种浪费:提供商向我保证我拥有硬件功能,并且我可以根据环境设置不同的请求/限制/复制参数。另外,目前我每个环境只需要部署 2 个镜像(尽管对于生产,我会选择水平缩放 2)。

最佳答案

我绝对会 100% 设置一个单独的测试集群。 (...假设 Kubernetes 有意义的设置足够大;我可能会考虑为简单的三层应用程序提供更简单的部署系统,就像您所描述的那样。)

从财务角度来看,这对您来说应该不会有太大影响。您将需要一定数量的硬件来运行应用程序的测试副本,并且您的组织将为此付费,无论它位于同一集群还是不同的集群中。额外的成本只是管理面的成本,不会过高。

在操作层面,部署过程中可能会出现各种各样的问题,特别是在某些情况下,一个 Kubernetes 资源可能“踩在”另一个资源上。部署到物理上独立的集群有助于最大限度地降低生产中发生事故的风险;例如,您不会意外地覆盖产品部署的保存其数据库配置的 ConfigMap。如果您设置了某种崩溃报告或警报,“它来自测试集群”是一个非常明确的检查,您可以使用它来避免唤醒 DevOps 团队。它还为您提供了一个尝试可能有风险的配置更改的地方:如果您在测试集群中运行更新脚本一次并且通过了,那么您可以在产品中重新运行它,但是如果您第一次运行它是在产品中并且它失败了,那就是中断。

根据您使用的 CI 系统,您可以设置的另一件事是完全自动部署到测试环境。如果提交通过了自己的单元测试,您可以让测试环境始终运行当前的 master 并在那里运行集成测试。当且仅当这些集成测试通过时,您才能升级到生产环境。

关于azure - 测试和生产可以共享同一个云kubernetes环境吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57127656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com