Kubernetes 开源9年,但我们已经有了 8 年的踩坑血泪史

💡 原文中文,约6700字,阅读约需16分钟。
📝

内容提要

这篇文章分享了作者在使用Kubernetes过程中的经验教训,包括早期决策、自托管集群的经历和集群崩溃的教训。作者还提供了关于Kubernetes的安全性、可观察性和最佳实践的建议。

🎯

关键要点

  • Urb-it 早期决定使用 Kubernetes 作为云原生战略的基石,旨在应对快速增长和微服务架构的需求。

  • 早期决策受到质疑,初创公司对 Kubernetes 的深度依赖需要大量学习。

  • 在 AWS 上自托管的 Kubernetes 集群经历了多次决策错误和集群崩溃,复杂性和缺乏经验是主要原因。

  • 迁移到 Azure Kubernetes Service (AKS) 后,团队发现托管解决方案比自托管更高效,且与 Azure 服务集成更方便。

  • 第一次集群崩溃是由于证书过期,导致系统故障,重建集群过程艰难。

  • 第二次集群崩溃同样是由于证书问题,尽管恢复过程相对容易,但仍然造成了困扰。

  • Kubernetes 的复杂性要求团队中有专门的工程师深入研究,以应对技术挑战。

  • 了解 Kubernetes 证书的过期日期至关重要,以避免集群崩溃。

  • 保持 Kubernetes 和 Helm 的更新是必要的,以避免配置和图表重写的麻烦。

  • 集中管理 Helm 图表可以提高效率,减少版本更新的工作量。

  • 制定灾难恢复计划是必要的,以便在需要时快速重建集群。

  • 备份和存储密钥的策略是确保集群安全的重要措施。

  • 与供应商无关的策略虽然好,但可能带来高机会成本,最终选择全力投入 AKS 相关产品。

  • 选择合适的节点类型和预留实例可以有效降低成本。

  • 监控、告警和日志整合是确保集群可观察性的关键。

  • Kubernetes 的安全性需要深入研究,实施最小权限原则和访问控制。

  • 使用 Helm 管理应用程序的部署,转向 Azure 容器注册表以获得更好的集成。

  • Kubernetes 改变了公司的运营方式,提高了扩展能力和基础设施成本优化。

  • 回顾八年的经验,作者希望分享的教训能为其他团队提供帮助。

➡️

继续阅读