避免K8S部署的10个反模式

Kubernetes确实很受欢迎,但是很难上手,而且传统开发中有很多实践都无法转化为云原生开发。

在本文中,我们研究了10个关于Kubernetes部署的反模式。

1.将配置文件放在Docker映像的内部/旁边:将您的配置数据外部化。您可以使用ConfigMap和Secrets或类似的东西。

2.不使用Helm或其他类型的模板:使用Helm或Kustomize可以简化您的容器编排并减少人为错误。

3.以特定顺序部署事物。应用程序不应崩溃,因为依赖项尚未就绪。利用Kubernetes的自我修复机制并实现重试和断路器。

4.在不设置内存和/或CPU限制的情况下部署Pod:您应该考虑设置内存和CPU限制以减少资源争用的风险,尤其是在与其他人共享群集时。

5.latest在生产中将标签拉到容器中:切勿使用最新的标签。始终根据语义版本规范使用诸如v1.4.0 /有意义的东西,并使用不可变的Docker映像。

6.通过杀死Pod来部署新的更新/补丁,以便它们在重新启动过程中提取新的Docker映像:对代码进行版本控制,以便更好地管理发布。

7.在同一群集中混合生产和非生产工作负载:如果可以,在单独的群集中运行生产和非生产工作负载。这样可以减少资源争用和意外环境转换对生产环境的风险。

8.不对任务关键型部署使用蓝色/绿色或金丝雀(Kubernetes的默认滚动更新并不总是足够的):您应该考虑使用蓝色/绿色部署或金丝雀版本,以减轻生产中的压力并获得更有意义的生产结果。

9.没有度量标准来了解部署是否成功(您的运行状况检查需要应用程序支持):您应该确保监视部署以避免任何意外。您可以使用Prometheus,Grafana,New Relic或Cisco AppDynamics之类的工具来帮助您更好地了解部署情况。

10.云供应商锁定:将自己锁定在IaaS提供商的Kubernetes或无服务器计算服务中:您的业务需求可能随时发生变化。您不应无意间将自己锁定在云提供商中,因为您可以轻松提升和转移云本机应用程序。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200906A0FG1X00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券