您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[2024 第23届 GOPS 全球运维大会暨 XOps 技术创新峰会 · 北京站]:李汉波-字节跳动基于 KubeAdmiral 的多云分布式云原生实践之路 - 发现报告
当前位置:首页/行业研究/报告详情/

李汉波-字节跳动基于 KubeAdmiral 的多云分布式云原生实践之路

李汉波-字节跳动基于 KubeAdmiral 的多云分布式云原生实践之路

字节跳动基于KubeAdmiral的多云分布式云原生实践之路 李汉波 云原生工程师 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 请替换您的照片 李汉波 云原生工程师 专注于云原生容器,多云领域 开源多云容器编排项目KubeAdmiral与Karmada社区Maintainer负责火山引擎分布式云原生系统的研发 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 01业务需求驱动分布式云架构建设 目录 字节跳动基于KubeAdmiral的 02集群联邦技术实践 从集群联邦到分布式云原生多云 03多集群管理实践 04分布式云原生的下一阶段 01业务需求驱动分布式云架构建设 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 分布式云原生行业现状 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 为什么需要分布式云原生统一管理 集 群规模及稳定 性 •单一集群规模受限 •单一大集群故障风险大 •单一云厂商锁定, 容灾难 0 1 多 云多集群运维成本高 0 2 •多云环境异构,云厂商资源 管理差异 •多云集群管理入口分散,缺乏统一运维方案 •多集群孤岛,无法统一调度,集群利用率低 •自建调度逻辑,成本高 多 云容灾困 难 •跨云迁移困难 •多云流量如何调度 •集群故障迁移困难 0 3 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 业务需求驱动分布式云架构建设 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 分布式云原生整体架构方案 公有云 私有云 边缘云 集群故障驱逐 数据备份恢复与迁移 多集群配额管控 跨集群调度策略 全域流量治理 多集群应用分发 多集群统一纳管(注册集群/联邦集群) 自动故障迁移 多集群统一观测 分布式云原生统一管理 02 字节跳动基于KubeAdmiral的集群联邦技术实践 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 字节跳动云原生发展历程 现有 500+ 2016 生产集群,基础设施深度云 原生化 TCE启动建设 TCE为内部应用提供快捷高效的应用部署方案 2017 微服务架构 完成核心业务微服务迁移,并在TCE之上构建服务框架、Mesh、监控告警等基础设施 2019 “推广搜”云原生 把“推广搜”的物理机服务与在线服务进行全面融合,实现统一容器化调度 2020 离在线调度融合、存储云原生 融合资源管理形态,简化供应链选型;优化运维效率,开启数据库、缓存等存储系统的云原生化改造 2021 云原生联邦演进 资源多云到应用多云,实现全场景应用编排和资源管理的标准化和统一化KubeFed—>KubeAdmiral 联邦集群管理节点数 210,000+ 最大集群节点数上万,实现大规模集 群落地 拥有 100,000+ 在线微服务,敏捷化构建能力持续增强 平均每日变更数高达 30,000 次,云原生为前线业务提供稳定性 保障 离线任务数 140M+ 通过云原生混部,大规模节省企业 资源成本 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 以KubeFed(Federationv2)为基础的集群联邦 KubeFedV2面临的问题 接入难度高 调度能力弱 状态聚合能力差 业务连续性 由于联邦层暴露的是“联邦化”的对象,而不是Kubernetes原生对象,上层服务往往需要针对联邦集群做特殊适配 只支持RSP静态副本调度,导致成员集群水位不均,对其他调度策略只能在程序中特殊处理,扩展性差 只支持把资源的status字段采集上来,无法自定义采集字段,也没有对状态进行多云多集群语义的转换与汇聚 扩缩容过程中,可能产生Rebalance,会影响业务稳定性;同时,故障迁移能力较弱 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 超大规模集群联邦KubeAdmiral https://github.com/kubewharf/kubeadmiral •兼容Kubernetes的标准API以及自定义CRD •调度器和调度算法可扩展,支持丰富的调度分发策略 •支持差异化覆写策略 •支持接管用户单集群已有资源,无损迁移 •提供状态采集框架,自定义状态采集字段 •更强大的故障自动迁移能力,涵盖集群故障迁移,应用故障迁移,污点迁移等场景 •支持联邦HPA,可以低成本接管单集群HPA(原生/自定义) GOPS全球运维大会暨XOps技术创新峰会2024·北京站 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 降低接入难度:支持原生API和CRD 引入FederatedController,负责将原生的资源转换为FederatedObject (sourceObj) Deployment (FederatedObj) Deployment FederatedController GOPS全球运维大会暨XOps技术创新峰会2024·北京站 增强状态聚合能力:自定义采集字段,汇聚status 通过引入StatusAggregator,负责将子集群资源的状态聚合到原生资源,针对不同的资源可以添加聚合Plugin (sourceObj)Deployment StatusAggregator FederatedController SyncController MemberClusterSourceObj SourceObj SourceObj SourceObj SourceObj FederatedObjec t PropogationPolicy GlobalScheduler GOPS全球运维大会暨XOps技术创新峰会2024·北京站 PropogationPolicy 提高调度扩展性:GlobalScheduler(1) (sourceObj)Deployment (FederatedObj) Deployment GlobalScheduler FederatedController 参考KubernetesSchedulingFramework,建设面向多样化FederatedObject的调度器:GlobalScheduler GOPS全球运维大会暨XOps技术创新峰会2024·北京站 提高调度扩展性:GlobalScheduler(2) FederatedObject Replica Selector Score Filter GlobalScheduler的Framework和Plugin: •Filter:根据子集群的状态、亲和性、资源、是否支持CRD等等过滤不符合条件的MemberCluster •Score:对符合条件的MembersCluster打分,例如资源、亲和性等 •Selector:最多分发到多少个集群 •Replica:面向类似Deployment提供的副本数调度 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 提高调度扩展性:GlobalScheduler(3) GlobalScheduler支持丰富的调度策略模板,用户可在应用中指定所需要的调度策略模板,也支持用户使用自定义的扩展调度器 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 提高调度扩展性:GlobalScheduler(4) GlobalScheduler支持通过http协议与外部插件交互,用户可以自行编写并部署定制化的调度逻辑: •SchedulerPluginWebhookConfiguration:配置schedulerplugin访问地址 •SchedulingProfile:配置schedulerplugin启用顺序 •PropagationPolicy:指定使用的schedulingprofile GOPS全球运维大会暨XOps技术创新峰会2024·北京站 动态调度:基于集群水位 KubeFedV2问题: •副本调度策略RSP只能为每个member集群设置静态权重 •静态权重很难做到集群部署率一致,在个别集群部署率很高时,很容易产生pending 基于集群水位的动态调度 •进行权重计算时,同时考虑集群的资源总量allocatable和当前可用资源量available 效果 •所有member集群的部署率都维持在95%以上,部分大规模member集群部署率可以达到98% 重调度:避免业务中断 KubeFedV2问题: 30个实例分布在AB2个member集群,集群权重1:1,现在用户增加一个集群C,同时缩容到15个实例: •用户预期:停止15个实例 •按权重调度:停止20个实例,启动5个实例,瞬时可用实例5+5+0(启动之前),低于15 集群ABC 实例数15150 集群ABC 缩容:30->15 瞬时实例数550 实例数555 30个实例分布在AB2个member集群,集群权重1:1,现在用户增加一个集群C,同时扩容到36个实例: •用户预期:启动6个实例 •按权重调度:启动12个实例,停止6个实例,瞬时可用实例12+12+0(启动之前),低于30 集群ABC 集群ABC 实例数15150 瞬时实例数12120 扩容:30->36 实例数121212 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 重调度:避免业务中断 当前方案:重调度策略增加avoidDisruption=true avoidDisruption在扩缩容时特殊处理,以避免正常运行的pod因为权重的变化被迁移 •先按权重算每个集群desired副本数,后结合当前副本数current计算最终分配副本数 •false:直接用desired作为最终结果,可能会引起集群间的迁移,但最终分布完全遵循权重 •true:避免反向的pod移动(如果是扩容,则没有集群会缩容,反之亦然),但最终分布不完全遵循权重 •副本数不变时,直接使用current(不进行重分布) 集群 A B C desired 5 5 5 final 7 8 0 集群 A B C desired 12 12 12 final 15 15 6 •缩容时,只缩容current>desired的集群 缩容:30->15 •扩容时,只扩容current<desired的集群 扩容:30->36 集群ABC 实例数 current 15150 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 字节内场实践-流量协调、自动容灾 字节内部容器间的调用全量切入到servicemesh体系,由其提供流量的代理和稳定性的保证 超时重试 服务限流 服务降级 负载均衡 流量切换 下游容器因为各种原因 产生性能抖动,框架自动重试 容器配置QPS上限,请求量过高时自动拒绝,实现进程自我保护 下游容器错误率升高后,自动减少请求量,必要时直接丢弃请求 根据下游错误率和延迟指标,自动实现多容器间的负载均衡 集群或机房整体不可用时,自动将整体流量切换到正常集群或机房 流量调度实现异常容器识别和规避 集群联邦实现多集群联合,突破单集群规模上限,在集群间实现容器的自动化迁移 入口统一 故障切换 资源均衡 业务无感知接入,仍然看到单集群视角,优化使用体验 集群或者机房故障时,联邦自动实现全量容器的整体迁移 自动在多个集群实现容器平衡调度,减少单集群故障影响面 集群联邦实现异常容器迁移和重建 03 从集群联邦到分布式云原生多云多集群管理实践 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 GOPS全球运维大会暨XOps技术创新峰会20

你可能感兴趣

hot

手游量子智能广告系统基于云原生 OLAP 的应用实践

文化传媒
DataFunSummit2023:OLAP引擎架构峰会2023-08-09
hot

火山引擎-张起彤-基于云原生范式构建开发者平台实践

信息技术
2023第十二届全球TOP100软件案例研究峰会2024-08-21
hot

QUIC协议在分布式系统架构中的实践_李龙彦

信息技术
ArchSummit深圳2023|全球架构师峰会2023-08-02