我们正在离开 Kubernetes - 博客

  • 主要观点:Kubernetes 起初看似是构建远程、标准化和自动化开发环境的明显选择,但实践后发现并非如此,作者分享了在 Kubernetes 上构建开发环境的实验、失败和死胡同,最终推出了 Gitpod Flex 架构。
  • 关键信息

    • 开发环境与生产工作负载相比具有独特性,如状态性、交互性强,开发者对源代码投入大,资源使用模式不可预测,需要广泛权限等。
    • 在 Kubernetes 上遇到资源管理(CPU、内存)、存储性能优化、自动缩放和启动时间优化、网络复杂性、安全与隔离等多方面挑战。
    • 尝试过多种技术如 SSD RAID 0、PVCs、微 VM 等,但都存在问题。
    • 推出 Gitpod Flex 架构,简化了架构,提高了安全基础,可在三分钟内部署自托管,能无缝集成 devcontainer 并在桌面运行开发环境。
  • 重要细节

    • CPU 管理中,CFS 方案及自定义控制器虽尝试解决预测 CPU 需求难题,但仍存在挑战,如进程竞争 CPU 带宽等。
    • 存储性能优化方面,尝试了多种存储设置,如 SSD RAID 0、块存储等,各有优缺点,还需解决备份恢复等问题。
    • 网络方面,要解决开发环境访问控制和网络带宽共享问题,网络策略可确保环境隔离,但服务和入口代理可能导致可靠性问题。
    • 安全与隔离中,用户命名空间虽提供细粒度控制,但带来性能、兼容性、复杂性等问题,需各种复杂组件配合。
    • 微 VM 实验虽有优势,但存在开销大、图像转换复杂、技术限制等问题。
    • Gitpod Flex 架构受 Kubernetes 启发,简化架构并注重零信任安全,可实现多地域部署和更精细控制。
阅读 7
0 条评论