[英]Kubernetes cluster best practice
我正在与Kubernetes合作开发一个新项目,我需要三个环境:DEV,QA和PROD。
最推荐的是,创建多个群集或创建一个按命名空间分隔环境的大群集。
你是否只想拥有一个prod集群或多个prod集群? 需要考虑的一件事是更新集群管理软件(到新的k8s版本)会影响您的应用程序。 如果您只打算使用单个prod群集,我建议您单独运行qa和dev,以便首先升级这些群集以解决任何问题。 如果您要拥有多个prod集群,那么您可以一次升级一个以确保应用程序可用性并在环境之间共享集群更有意义。
命名空间不会带给你隔离,目前它只是dns中的一个不同的子域。 每个应用程序最好有命名空间。 我强烈建议你有两个用于prod的集群(如果更新k8s)和一个用于dev / qa的集群。
看一下这篇博客文章: 清单:使用多个Kubernetes集群的优缺点,以及如何在它们之间分配工作负载 。
我想强调一些优点/缺点:
拥有多个集群的原因
- 生产/开发/测试的分离:特别用于测试其他集群软件的新版Kubernetes,服务网格
- 合规性:根据某些规定,某些应用程序必须在单独的群集/单独的VPN中运行
- 更好的安全隔离
- 云/本地服务:在内部部署服务之间分配负载
拥有单个群集的原因
- 减少设置,维护和管理开销
- 提高利用率
- 降低成本
考虑到不太昂贵的环境,平均维护,但仍然确保生产应用程序的安全隔离,我建议:
绝对同意你想要多个集群:在升级期间可能失败的k8s的任何关键因素,或者因为你搞砸了某个地方会影响整个集群。
例如,我遇到了DNS问题,这在我的集群中造成了破坏; 所有名称空间都受到影响。
升级通常不是什么大问题,但有一天你可能遇到障碍; 如果kubelet失败太久你的吊舱会被杀死。
所以最好升级你的测试/开发环境,然后在产品升级之前解决问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.