1、多集群场景的应用管理平台技术实践黎雄熊 腾讯云容器高级开发工程师黎雄熊腾讯云容器高级开发工程师超过7年的容器开发经验,现负责多集群应用管理平台TKE AppFabric的研发设计,在应用的多集群模型设计、多集群管理调度、多集群灰度升级、多集群重调度、多集群协同扩缩容、应用自愈等方向有较多的经验与积累;前期还深度参与了腾讯超千万核自研业务容器上云平台TKEx,支持包括QQ、腾讯会议、腾讯文档在内的自研业务实现云原生架构升级,在有状态服务应用改造、云原生应用发布与流量管理、大规模集群的运营效率、稳定性提升等方向也有丰富的经验。0102030405腾讯云原生上云的历程TKE AppFabric应用管
2、理平台应用面向可用区调度CLB、HPA的多集群协同处理面向应用管理的价值腾讯云原生上云的历程腾讯云原生上云的历程第一阶段第二阶段第三阶段第四阶段(当前)TKE统一技术底座TKE成为公司内标准容器平台底座提升资源利用率在离线混部、动态调度、重调度、资源超卖等提升集群资源利用率底座自研工作负载类型(StatefulPlus)应对多样化的发布需求自研弹性伸缩、集群稳定性套件等提升自研业务的容器稳定性落地Serverless容器通过Serverless技术打通多个资源池,进一步提升稳定性和资源效率面向应用管理提升业务的管理效率提升平台的资源运营效率TKE AppFabric应用管理平台业务面向集群管理
3、的问题7广州地域集群1-可用区1PodPod集群2-可用区2PodPod集群3-可用区3PodPod资源资源不足不足面向集群编排下理想的高可用部署(重复部署n次)北京上海海外实际案例:业务A:最高峰有2k个工作负载、分布在17个region 的100+集群中,面向集群的管理效率极低。业务B:上海地域需要的核心数很多,创建了8个workload,分散在4个集群,依然存在可用区比例失调问题。面向集群编排方式的问题:效率低,风险大,成本高面向集群编排:用户在容器平台选择一个或多个集群来部署应用核心原因:集群有容量上限:ETCD容量,pod数量,IP等 集群/节点属性多:CPU/GPU类型,可用区 业
4、务有容灾需求:多集群、多可用区容灾问题简述:业务部署效率低:集群多,属性多,资源+容灾满足需求不好找。(广州集群数:100+)平台运营风险大:资源实时变化,资源不足,异常均需要人工处理。运营过程中比例失衡。业务/平台成本高:为了容灾,资源用量保守。面向集群管理的解决思路广州地域集群1Pod集群2Pod集群3PodUserUser应用声明式高可用 业务无需感知集群 平台根据集群容量自动调度跨集群统一资源池 集群资源不足,自动调度到新集群 平台资源腾挪用户无感提炼核心需求业务管理模型升级DeploymentServiceIngressNodePodConfigMapKubernetesDevOps
5、K8s Team面向Kubernetes语义的资源进行编排TAD应用标准模型:定义组件,运维操作和拓扑分布,更简单,清晰,自然。多集群场景下业务管理的k8s对象会膨胀,声明Kubernetes workload 数量会 x 集群数,管理复杂屏蔽了集群和集群内的资源对象,管理链路从“业务集群WorkloadPod”简化为“应用Pod”,管理对象不会随着规模和多集群膨胀9抽象升级TKE AppFabric应用管理平台TKE 标准集群TKE Serverless 集群TKE 注册集群应用标准化TAD资源策略模糊可用区模糊机型资源运营资源SLA资源定价资源优先级资源匹配硬件类型地理位置应用特性业务SL
6、A资源腾挪应用管理平台业务管理配额权限环境成本智研云监控云账号CLBVPCCBS指定集群按比例部署模糊可用区指定可用区高可用部署应用变更滚动更新灰度发布并行发布整体扩缩持续运营日志采集监控告警操作审计事件记录流量管理北极星CLB四层CLB七层应用网关应用健康健康巡检故障自愈成本优化应用拓扑产品关键词:云原生应用高可用、管理效率基于TAD(Tencent Application Definition)声明应用提供一键容灾部署的产品能力(同城多活、两地三中心等策略)支持面向应用的多Region/Zone分批灰度发布多集群的应用服务发现,应用弹性伸缩面向应用的配额管理、核算计费、成本优化视图应用可观