本文共 2141 字,大约阅读时间需要 7 分钟。
去年 6 月,蚂蚁金服 Kubernetes 开发团队从零开始尝试将 Kubernetes.zero落地,并在短短一年内完成了从零到 Hero 的跨越式发展。2019 年 618 大促期间,蚂蚁金服成功将 Kubernetes 好了整个调度系统,将其作为核心的云服务基础设施投入了大规模运行。这一里程碑式的成就不仅刷新了人们对 Kubernetes 的认知,更为后续的云原生化奠定了坚实的基础。
作为一个仅有十几人的团队,在短短一年时间内完成从 Kubernetes 的零部署到大规模落地,不得不体 my 笔迹。这种成就背后,有两个关键要素:云原生的技术支撑和敏捷化的开发方式。通过对 Kubernetes 功能的扩展和封装,团队成功实现了从传统调度系统向 Kubernetes 的平滑切换,还将大量 Kubernetes 功能迁移至蚂蚁金服的生产环境。
在这一过程中,团队提出了两款重要的 Operator:Kube-on-Kube-Operator 和 Node-Operator。Kube-on-Kube-Operator 负责管理和交付 Kubernetes 集群(业务集群)的各个组件和服务,而 Node-Operator 则全资负责工装工厂(物理机)的生命周期管理。通过这两个 Operator 的协作,蚂蚁金服实现了分钟级甚至秒级构建 Kubernetes 集群的能力,主流业务集群的 Kubernetes Master 组件全部运行在元集群(一个专门用于管理业务集群的 Kubernetes 集群)上。
Kubernetes 的自动化运维能力得到了充分发挥,所有业务集群的节点、组件均通过 Operator 完整生命周期管理。这种方式工具化了云原生实践,使得从部署到运维的整个流程遵循统一的标准化流程。
cloud-native 的核心理念是让应用无差别运行在任何云平台上。而蚂蚁金服开发团队在落地 Kubernetes 的过程中,面临怎样的挑战?当初的决定将 Kubernetes 运行在 Kubernetes 上,实际上开创了全新的云原生新维度。
Kubernetes 经过封装和运维的升级,逐渐发展成为一个功能集成的云服务平台。Kube-on-Kube-Operator 将其能力延展到了集群间的统一管理和部署,让每个集群都拥有标准化的资源定义和操作流程。这种方式不仅提高了运维效率,更重要的是实现了基础设施和应用的无缝对接。
需要强调的是,这一实践不仅改变了 Kubernetes 本身,更影响了整个云原生生态。在蚂蚁金服的实践中, GitOps 理念被引入,将代码和部署快速迭代与自动化结合起来。通过将部署资源文件放在 Git 仓库并进行规范化流程管理,团队实现了部署的全面透明化与标准化。
干净并简洁的 CI/CD 流水线是云原生应用的重要保障。在蚂蚁金服的实践中,团队建立了全面的自动化流水线覆盖从研发到发布的各个环节。
在流水线构建过程中,使用镜像化技术将所有组件和测试集固定的镜像仓库,这样实现了各环境之间的无缝迁移。关键在于流水线的触发机制:其封装的部署资源通过 Auto-Submit Saharaakashi 方式快速沉管,生产发布只需等待 PR 合并完成。
通过对 Kubernetes 统一资源定义的应用,实现了开发、测试、生产环境的统一部署标准。此外,流水线中的自动化促进了资源利用率的提升,最大程度减少了重构风险和集群性能问题。
大规模集群的运行需要在稳定性的基础上实现高吞吐量。蚂蚁金服的实践表明,想要实现从少量集群到万节点级的平稳过渡,需要全方位进行性能优化和系统架构的改造。
在 API Server 性能优化方面,最大改进来自于其资源需求优先级的调整。通过将 API Server 设置为 "Guaranteed" 级别,并合理分配硬件资源,显著提升了其在大规模集群中的表现。此外,负载均衡改进通过点击率表现优化和改进 API Server 的 "先扩后缩" 增补策略,实现了更平滑的版本升级过程。
对 NodeLease 功能的开启,更是通过降低节点心跳更新压力,释放了 API Server 的资源。针对请求链路中的 Context 失效情况,团队通过修复客户端的 goruntine 积压问题,在内存管理上做出了重要改进。最后,优化客户端行为的改进措施,如 Informer 的细粒度控制和调整 Daemonset Re-Watch 时间间隔,使得服务器资源的使用更加合理高效。
在成功的实践中,蚂蚁金服对开源项目的贡献也不能忽视。对 Kubernetes 社区的贡献包括性能问题的修复和优化,以及其它场景下的改进方案。在金融级分布式框架 SOFAStack 的开发上,则实现了其与 Kubernetes 集群环境的深度集成,为开源社区的发展做出了积极贡献。
转载地址:http://xlryk.baihongyu.com/