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

简介: ACK One 的多集群应用分发,可以最小成本地结合您已有的单集群 CD 系统,无需对原先应用资源 YAML 进行修改,即可快速构建成多集群的 CD 系统,并同时获得强大的多集群资源调度和分发的能力。

【阅读原文】戳:从单集群到多集群的快速无损转型:ACK One 多集群应用分发

 

 

 

概述

 

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

 

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

 

 

ACK One 多集群应用分发

 

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

 

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

 

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

 

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

 

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

 

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

 

image.png

 

具体流程如下:

 

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. 原单集群中的应用不受影响,不会发生服务中断或重启。

 

image.png

 

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

 

1. 创建 ACK One 舰队,并将多个集群关联到舰队;

 

2. 将分发策略(PropagationPolicy)、差异化策略(OverridePolicy)提交到 Codeup 代码仓库应用目录中,不改变原来的 YAML;

 

a. 如下图所示,下图为 ACK One demo仓库 [7]

 

image.png

 

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

 

3. 修改已存在的单集群 CD 云效流水线,配置将应用和策略部署到 ACK One Fleet(舰队)中;

 

Kubernetes 发布 - Kubectl 发布中的集群配置文件,从单集群的 kubeconfig 改成舰队的 kubeconfig,集群 ID 可以填入舰队 ID。

 

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

 

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

 

image.png

 

image.png

 

 

总结

 

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

 

1. 在 Git/Codeup 仓库中的应用目录中,增加分发策略(PropagationPolicy)、差异化策略(OverridePolicy) YAML;

 

2. 修改单集群 kubeconfig 为舰队 kubeconfig。

 

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

 

更多内容可详见基于 ACK One 与云效快速构建多集群 CD [8]ACK One 多集群应用分发 [7]


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

 

相关链接:

 

[1] 分布式云容器平台 ACK One

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/product-overview/ack-one-overview

 

[2] 多集群应用分发

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/application-distribution/

 

[3] 云效

https://help.aliyun.com/zh/yunxiao/product-overview/what-is-cloud-effect

 

[4] 云效自身的 CD 能力

https://help.aliyun.com/zh/yunxiao/user-guide/kubernetes-deployment/

 

[5] ACK One 注册集群

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/registered-clusters/

 

[6] ACK One 多集群应用分发

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/application-distribution-overview

 

[7] ACK One demo 仓库

https://github.com/AliyunContainerService/gitops-demo/tree/main/manifests/directory/mc-app

 

[8] 基于 ACK One 与云效快速构建多集群 CD

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/use-cases/multi-cluster-continuous-delivery-with-ack-one-and-alibaba-cloud-devops


 


我们是阿里巴巴云计算和大数据技术幕后的核心技术输出者。

欢迎关注 “阿里云基础设施”同名微信微博知乎

获取关于我们的更多信息~

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
6天前
|
运维 Kubernetes Cloud Native
智联招聘 × 阿里云 ACK One:云端弹性算力颠覆传统 IDC 架构,打造春招技术新范式
在 2025 年春季招聘季的激战中,智联招聘凭借阿里云 ACK One 注册集群与弹性 ACS 算力的深度融合,成功突破传统 IDC 机房的算力瓶颈,以云上弹性架构支撑千万级用户的高并发访问,实现招聘服务效率与稳定性的双重跃升。
|
30天前
|
资源调度 Kubernetes 调度
从单集群到多集群的快速无损转型:ACK One 多集群应用分发
本文介绍如何利用阿里云的分布式云容器平台ACK One的多集群应用分发功能,结合云效CD能力,快速将单集群CD系统升级为多集群CD系统。通过增加分发策略(PropagationPolicy)和差异化策略(OverridePolicy),并修改单集群kubeconfig为舰队kubeconfig,可实现无损改造。该方案具备多地域多集群智能资源调度、重调度及故障迁移等能力,帮助用户提升业务效率与可靠性。
|
3月前
|
存储 Kubernetes 监控
K8s集群实战:使用kubeadm和kuboard部署Kubernetes集群
总之,使用kubeadm和kuboard部署K8s集群就像回归童年一样,简单又有趣。不要忘记,技术是为人服务的,用K8s集群操控云端资源,我们不过是想在复杂的世界找寻简单。尽管部署过程可能遇到困难,但朝着简化复杂的目标,我们就能找到意义和乐趣。希望你也能利用这些工具,找到你的乐趣,满足你的需求。
273 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,开发者可以受益于灵活性和可扩展性,允许他们在多种环境中运行多种应用,同时利用自动化工具使工作负载更加高效。
149 19
|
3月前
|
人工智能 分布式计算 调度
打破资源边界、告别资源浪费:ACK One 多集群Spark和AI作业调度
ACK One多集群Spark作业调度,可以帮助您在不影响集群中正在运行的在线业务的前提下,打破资源边界,根据各集群实际剩余资源来进行调度,最大化您多集群中闲置资源的利用率。
|
3月前
|
Prometheus Kubernetes 监控
OpenAI故障复盘丨如何保障大规模K8s集群稳定性
OpenAI故障复盘丨如何保障大规模K8s集群稳定性
124 0
OpenAI故障复盘丨如何保障大规模K8s集群稳定性
|
6月前
|
Prometheus Kubernetes 监控
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。
|
4月前
|
运维 分布式计算 Kubernetes
ACK One多集群Service帮助大批量应用跨集群无缝迁移
ACK One多集群Service可以帮助您,在无需关注服务间的依赖,和最小化迁移风险的前提下,完成跨集群无缝迁移大批量应用。

热门文章

最新文章

推荐镜像

更多