腾讯云容器平台超千万核资源管理实践
腾讯自研业务容器化上云历程
腾讯经过3-4年大规模自研业务云原生实践,在技术方向和业务场景沉淀了丰富解决方案。自研业务容器化上云技术路线涵盖基础设施产品化服务、计算(CPU/GPU)、存储(CFS/CBS)、网络(VPC/CLB/ENITKE)等,并构建了DevOps、应用市场、研效平台等生态体系。自研上云规模显著,形成了完整的容器平台架构,包括北极星/TRPC、Operators、业务游戏音视频社交出行基础服务等。
各种混部场景下利用率提升方案
在线离线混部集群
- 问题:非容器化部署资源利用率低、业务容灾占用资源、资源“占而不用”、资源潮汐现象、业务隔离等。
- 原则:通用技术、云原生方式、降低应用依赖、兼容生态、保证服务质量、提升资源利用率。
- 方案:Caelus全场景在离线混部技术,通过干扰检测与处理、全维度资源隔离、资源弹性、优先级抢占等手段提升利用率。Caelus相关能力已开源,集群CPU利用率可提升至60%。
在线混部集群
- 方案:采用Dynamic-Node-Resource-Oversaler、Dynamic-Pod-Resource-Compressor、Node-Operator-Agent等技术实现二层动态资源超卖、节点负载均衡、调度弹性伸缩。
- 效果:通过在线业务混部超卖方案,集群CPU平均利用率提升至30%~40%。
- 开源:Crane项目对外开源混部技术。
稳定性面临的挑战及其破解之法
平台&集群稳定性
- 监控告警体系:完善监控告警体系,实现从平台到Workload/Pod的全面监控。
- 组件高可用:集群组件高可用部署,配置健康检查,异常自愈。
- 自动化标准化:集群建设自动化、标准化。
- 案例:提升Prometheus集群稳定性,实现动态弹性能力;集群规模巨大时,通过标准化建设提升效率。
节点稳定性
- 检测指标:Dockerd/Containerd/Kubelet状态、OS稳定性指标、内核稳定性事件等。
- 自愈机制:NPD(Node-Problem-Detector)进行自动化分析和自愈决策。
- 内核升级:自研node-scorer组件选择最佳节点集进行内核升级,复用集群扩缩容组件实现自动化。
业务稳定性
- 内核优化:深入内核层面提供容器级稳定性指标,进行协同调度编排。
- Serverless K8s:逐步大规模使用Serverless K8s(EKS)架构,提升轻运维、异构算力、计费灵活等优势。
从面向集群到面向应用的调度编排
- 问题:传统业务管理效率低,业务变更需反复切换集群。
- 方案:基于Clusternet抽象应用概念,实现跨集群应用统一管理。
- 功能:跨集群应用统一变更、配置管理、业务看板、弹性伸缩、容灾检查、流量调度等。
- 案例:全网1w个工作负载、5w个Pod分布在80个集群中,通过应用视角管理可一键发起全球灰度变更。
- 动态拆分调度:调度感知子集群资源使用情况,提供精准调度支持。
- 多集群协同弹性伸缩:通过Hub-Cluster中的HPA Coordinator Controller实现应用在多个集群中的弹性协同。
- 云原生应用治理平台:基于TAD声明应用,支持多集群分批灰度发布、故障自愈、流量编排调度、配额管理、成本优化等。
核心数据与结论
- 在线离线混部集群CPU利用率提升至60%。
- 在线混部集群CPU平均利用率提升至30%~40%。
- 通过Serverless K8s架构提升轻运维、异构算力、计费灵活等优势。
- 基于Clusternet实现跨集群应用统一管理,大幅提升业务管理效率。