从单集群到多集群的快速无损转型:ACK One 多集群应用分发

本文涉及的产品
可观测监控 Prometheus 版,每月50GB免费额度
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 本文介绍如何利用阿里云的分布式云容器平台ACK One的多集群应用分发功能,结合云效CD能力,快速将单集群CD系统升级为多集群CD系统。通过增加分发策略(PropagationPolicy)和差异化策略(OverridePolicy),并修改单集群kubeconfig为舰队kubeconfig,可实现无损改造。该方案具备多地域多集群智能资源调度、重调度及故障迁移等能力,帮助用户提升业务效率与可靠性。

image.gif


概述


在云原生时代,随着业务的发展(如业务遍布全球、已达单一集群承载上限)、单地域资源不足(如 GPU),容灾需求的迫切、安全合规的要求等原因,越来越多的用户采用多 Kubernetes 集群来承载业务。分布式云容器平台 ACK One【1】 多集群应用分发【2】可以按多样的策略(静态权重、动态资源调度、Gang 调度等),分发舰队中的 Kubernetes 资源到多集群中,并具有多地域多集群智能资源调度、重调度、故障迁移等能力。可以很容易地将您已有的单集群 CD 系统和 ACK One 的多集群应用分发【3】结合,最小化改造成本,无需对原先应用资源 YAML 进行修改,即可快速构建成多集群的 CD 系统,并同时获得强大的多集群资源调度和分发的能力。


云效【4】是阿里云提供的一站式 DevOps 平台,提供涵盖软件研发全生命周期的研发工具链和研发管理服务,可以通过流水线 Flow 实现将应用部署到 ACK 集群中。本文以云效为例,结合云效自身的 CD 能力【5】和 ACK One 的多集群应用分发【6】,说明如何快速从单集群 CD 系统转变为多集群 CD 系统。


ACK One 多集群应用分发


分布式云容器平台 ACK One【7】 是阿里云面向混合云、多集群、分布式计算、容灾等场景推出的企业级分布式云容器平台,提供多集群统一管理能力。通过 ACK One 注册集群【8】将您的其他公共云厂商和 IDC K8s 集群接入到阿里云容器服务 ACK 控制台,并由舰队对这些注册集群以及云上的 ACK、ACK Edge 集群进行多集群统一的应用分发、流量管理、可观测运维管理、安全管理等。


ACK One 多集群应用分发【9】是阿里云面向多集群和混合云场景提供的跨多集群统一管理应用资源的能力。当单一 ACK 集群无法满足 workload 的资源需求,比如单地域无法满足您的推理服务的 GPU 资源需求,可以通过 ACK One 多集群应用分发的资源调度能力,跨地域多集群弹性来寻找 GPU 资源,以满足推理服务的资源需求;当您需要同时向多个集群发布应用,或者考虑通过多地域多集群部署提升应用可靠性,也可以使用该能力来实现。该能力具有以下主要分发和调度能力:


1. 多地域多集群智能资源调度:跨地域跨集群寻找资源(多集群存量 Nodes 资源和弹性 ECS/Serverless 资源),最大限度避免缺货,提升资源利用率,提升业务效率。


2. 多集群 Gang 调度:通过预占或动态资源检测,实现 workload 的多集群 Gang 调度,确保任务下发到子集群后能够调度,提升任务调度效率。


3. 多种分发策略:复制,静态权重,动态权重等。


4. 重调度和故障迁移:Workload 在子集群中失败后,Global Scheduler 将回收该作业,并对其进行重调度或故障迁移,调度到其他符合条件且资源充足的集群。



具体流程如下:


1. 舰队上提交应用资源和分发策略 PropagationPolicy
2. 舰队中的 Global Scheduler,根据分发策略,选择合适的集群,分发应用资源到多个 ACK 集群中。
3. 若应用运行失败,Global Scheduler 将回收作业,并对其进行重调度或故障迁移,调度到其他符合条件且资源充足的集群。


基于 ACK One 与云效构建多集群 CD


这里以云效 CD 为例,展示一个单集群 CD 系统,通过 ACK One 多集群应用分发改造成多集群 CD 系统,需要进行的操作。


结合 ACK One 多集群应用分发和云效,从单集群 CD,可以快速变成一个多集群


CD:


1. 无需修改原先发布的应用资源(如 Deployment)YAML,
2. 只需在原应用基础上增加分发策略(PropagationPolicy)和差异化策略(OverridePolicy,如涉及),
3. 原单集群中的应用不受影响,不会发生服务中断或重启。


架构如上图所示,主要流程如下:


1. 创建 ACK One 舰队,并将多个集群关联到舰队,
2. 将分发策略(PropagationPolicy)、差异化策略(OverridePolicy)提交到 Codeup 代码仓库应用目录中,不改变原来的 YAML;
   a. 如下图所示,下图为 ACK One demo仓库【10】



   b. 如果需要使用多集群资源调度相关能力,可以在分发策略(PropagationPolicy)中指定。

3. 修改已存在的单集群 CD 云效流水线,配置将应用和策略部署到 ACK One Fleet(舰队)中;
a. Kubernetes 发布 - Kubectl 发布中的集群配置文件,从单集群的 kubeconfig 改成舰队的 kubeconfig,集群 ID 可以填入舰队 ID。

4. 点击运行流水线后,应用资源和策略都会被部署到 ACK One 舰队,之后按照策略将应用分发到多集群中。同时接管单集群中已部署的该应用,不会引起原单集群中的 workload 发生服务中断或重启(如果 workload YAML 没有变更)。

  1. 运行云效流水线后,控制台展示如下,之后可去舰队查看资源是否部署,并且查看子集群分发状态。



总结


ACK One 多集群应用分发聚焦于提供更好的多集群统一应用管理能力,降低多集群应用管理成本,让您聚焦于业务本身,提供多地域多集群智能资源调度能力,最大限度供应充足资源,提升您的业务效率。同时,它也可以很容易地和您已有的单集群 CD 系统结合起来,您仅需做如下 2 点改动,即可将单集群 CD 快速无损地改造成多集群 CD 系统,以获得上述强大能力:


1. 在 Git/Codeup 仓库中的应用目录中,增加分发策略(PropagationPolicy)、差异化策略(OverridePolicy) YAML;
2. 修改单集群 kubeconfig 为舰队 kubeconfig。

既无需改变原先应用资源 YAML,也不会引起原集群中 Pod 重启。


更多内容可详见基于 ACK One 与云效快速构建多集群 CD【11】 ACK One 多集群应用分发【12】

欢迎加入 ACK One 客户交流钉钉群,与我们一同交流。(钉钉群号: 35688562)


【1】分布式云容器平台ACK One

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/product-overview/ack-one-overview?spm=a2c4g.11186623.help-menu-85222.d_0_0.4f61fe863Dwssg&scm=20140722.H_358833._.OR_help-T_cn~zh-V_1


【2】多集群应用分发https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/application-distribution-overview?spm=a2c4g.11186623.help-menu-358832.d_2_2_5_0.6c6c1381gxRXnz


【3】多集群应用分发https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/application-distribution/?spm=a2c4g.11186623.help-menu-85222.d_2_2_5.3bb52dc4O1IxVE&scm=20140722.H_2848419._.OR_help-T_cn~zh-V_1


【4】云效https://help.aliyun.com/zh/yunxiao/product-overview/what-is-cloud-effect?spm=a2c4g.11186623.help-menu-150040.d_0_0_0.6c80104ciZ9vbg


【5】云效自身的CD能力https://help.aliyun.com/zh/yunxiao/user-guide/kubernetes-deployment/?spm=a2c4g.11186623.help-menu-150040.d_2_5_5_1.66144d9baT4rSr


【6】多集群应用分发https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/application-distribution/?spm=a2c4g.11186623.help-menu-85222.d_2_2_5.3bb52dc4O1IxVE&scm=20140722.H_2848419._.OR_help-T_cn~zh-V_1


【7】分布式云容器平台ACK Onehttps://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/product-overview/ack-one-overview?spm=a2c4g.11186623.help-menu-85222.d_0_0.40da5219xR6Z65


【8】ACK One注册集群https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/registered-clusters/?spm=a2c4g.11186623.help-menu-85222.d_2_1.2b35378dwcWYvK


【9】ACK One 多集群应用分发https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/application-distribution-overview?spm=a2c4g.11186623.help-menu-85222.d_2_2_5_0.714658fcuDGDaN


【10】ACK One demo仓库https://github.com/AliyunContainerService/gitops-demo/tree/main/manifests/directory/mc-app


【11】基于ACK One与云效快速构建多集群CDhttps://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/use-cases/multi-cluster-continuous-delivery-with-ack-one-and-alibaba-cloud-devops?spm=a2c4g.11186623.help-menu-85222.d_3_2_3.6a7d4467f1JsCv


【12】ACK One 多集群应用分发https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/application-distribution-overview?spm=a2c4g.11186623.help-menu-358832.d_2_2_5_0.6c6c1381gxRXnz


相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
8天前
|
运维 Kubernetes Cloud Native
智联招聘 × 阿里云 ACK One:云端弹性算力颠覆传统 IDC 架构,打造春招技术新范式
在 2025 年春季招聘季的激战中,智联招聘凭借阿里云 ACK One 注册集群与弹性 ACS 算力的深度融合,成功突破传统 IDC 机房的算力瓶颈,以云上弹性架构支撑千万级用户的高并发访问,实现招聘服务效率与稳定性的双重跃升。
|
1月前
|
资源调度 Kubernetes 调度
从单集群到多集群的快速无损转型:ACK One 多集群应用分发
ACK One 的多集群应用分发,可以最小成本地结合您已有的单集群 CD 系统,无需对原先应用资源 YAML 进行修改,即可快速构建成多集群的 CD 系统,并同时获得强大的多集群资源调度和分发的能力。
62 9
|
3月前
|
存储 Kubernetes 监控
K8s集群实战:使用kubeadm和kuboard部署Kubernetes集群
总之,使用kubeadm和kuboard部署K8s集群就像回归童年一样,简单又有趣。不要忘记,技术是为人服务的,用K8s集群操控云端资源,我们不过是想在复杂的世界找寻简单。尽管部署过程可能遇到困难,但朝着简化复杂的目标,我们就能找到意义和乐趣。希望你也能利用这些工具,找到你的乐趣,满足你的需求。
274 33
|
2月前
|
人工智能 Serverless 调度
突破地域限制,实现算力无限供给 —阿里云ACK One注册集群开启多地域Serverless算力调度
本文介绍了阿里云ACK One注册集群多地域Serverless算力调度解决方案,解决传统数据中心在AI时代面临的算力不足问题。方案通过分钟级接入、100%兼容Kubernetes操作及云上Serverless弹性,实现跨地域弹性算力供给,支持高并发请求与模型快速迭代。文中详细描述了快速接入步骤、指定地域调度及动态调度方法,并提供了相关代码示例。该方案助力企业实现AI推理服务的规模化部署,提升商业落地效率。
|
2月前
|
人工智能 Serverless 调度
突破地域限制,实现算力无限供给 -- 阿里云ACK One注册集群开启多地域Serverless算力调度
传统单地域算力难以支撑AI推理场景的高并发实时响应、突发高流量的要求,阿里云容器服务ACK One注册集群推出多地域Serverless算力调度方案完美解决此问题。
|
3月前
|
Kubernetes 开发者 Docker
集群部署:使用Rancher部署Kubernetes集群。
以上就是使用 Rancher 部署 Kubernetes 集群的流程。使用 Rancher 和 Kubernetes,开发者可以受益于灵活性和可扩展性,允许他们在多种环境中运行多种应用,同时利用自动化工具使工作负载更加高效。
152 19
|
3月前
|
人工智能 分布式计算 调度
打破资源边界、告别资源浪费:ACK One 多集群Spark和AI作业调度
ACK One多集群Spark作业调度,可以帮助您在不影响集群中正在运行的在线业务的前提下,打破资源边界,根据各集群实际剩余资源来进行调度,最大化您多集群中闲置资源的利用率。
|
存储 Kubernetes API
在K8S集群中,如何正确选择工作节点资源大小? 2
在K8S集群中,如何正确选择工作节点资源大小?
|
Kubernetes Serverless 异构计算
基于ACK One注册集群实现IDC中K8s集群以Serverless方式使用云上CPU/GPU资源
在前一篇文章《基于ACK One注册集群实现IDC中K8s集群添加云上CPU/GPU节点》中,我们介绍了如何为IDC中K8s集群添加云上节点,应对业务流量的增长,通过多级弹性调度,灵活使用云上资源,并通过自动弹性伸缩,提高使用率,降低云上成本。这种直接添加节点的方式,适合需要自定义配置节点(runtime,kubelet,NVIDIA等),需要特定ECS实例规格等场景。同时,这种方式意味您需要自行
基于ACK One注册集群实现IDC中K8s集群以Serverless方式使用云上CPU/GPU资源
|
Kubernetes API 调度
在K8S集群中,如何正确选择工作节点资源大小?1
在K8S集群中,如何正确选择工作节点资源大小?

相关产品

  • 容器服务Kubernetes版
  • 推荐镜像

    更多