将 Kubernetes 从 PodSecurityPolicy 迁移到 Kyverno - [[WM:TECHBLOG]]

主要观点:Wikimedia Toolforge 平台从 Kubernetes PodSecurityPolicy 迁移到 Kyverno 的经验和教训。
关键信息

  • Toolforge 是基于 Kubernetes 的平台服务,由 WMCS 维护,有 3500 个工具账户。
  • 2019 年采用 PSP 确保 Pod 有正确运行时配置,2021 年宣布 PSP 机制将被弃用。
  • 决定用 Kyverno 替代 PSP,进行代码重构和制定 Kyverno 策略。
  • 重构过程中遇到文件系统交互慢等问题,经过修正。
  • 分阶段迁移,包括更新模板生成器、引入 Kyverno 策略等,但在部署 3500 个 Kyverno 策略资源时导致生产集群宕机。
  • 采取一系列措施后系统稳定,包括修正外部 HAproxy 健康检查、创建更真实开发环境、增加控制平面服务器内存等。
  • 还发现并修复了 Kyverno 中关于“procMount”的错误。
  • 整个迁移项目耗时约三个月。
    重要细节
  • 内部软件 maintain-kubeusers 负责处理账户相关操作,重构后引入了正确的协调循环。
  • 在 lima-kilo 环境中进行开发和测试,最初计划分阶段迁移 PSP 到 Kyverno 策略。
  • 生产集群宕机是因为未充分测试大量策略资源,经多次调整后系统稳定。
  • 发现“procMount”错误并向上游提交补丁。最终成功完成迁移,禁用了 PSP。
阅读 13
0 条评论