ACK One舰队管理:企业级多集群管理解决方案

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: ACK One舰队管理是阿里云为您提供的强大的多集群管理方案,功能众多:GitOps应用分发、多集群网关、多集群Service、全局可观测、服务网格、统一权限管理等,方便您轻松应对混合云、多集群、容灾等场景的问题,简化多集群管理。

【阅读原文】戳:ACK One舰队管理:企业级多集群管理解决方案

K8s多集群发展概述

 

 

随着企业业务发展,使用K8s多集群的必要性逐步凸显:

 

 

容灾、多活、高可用、低延迟:在多地域、多可用区部署业务,故障后迁移流量,提升业务可用性;在多个集群中部署业务分摊流量;多地域部署,就近访问降低延迟。

 

多云、混合云:云上统一管理IDC集群,大促等流量突发时使用云上弹性资源;跨多个云厂商,统一管理、避免厂商绑定。

 

业务和故障隔离:相比于基于命名空间的多租架构,使用多集群隔离不同属性业务,具有更好的隔离性和性能(如使用多集群划分dev、staging、production环境),同时也缩小了故障影响范围。

 

安全合规、单K8s集群节点和Pod有上限等。

 

针对以上多集群用例,诸多多集群或舰队管理方案应运而生,致力于高效、统一地管理多集群。多集群管理方案的发展,始自Kubernetes 1.5、1.6版本时,Kubernetes社区提出的KubeFed[1]项目。但 Federation v1由于API的扩展性差、管理复杂和成熟度不足等问题,已被社区归档,也并未被广泛使用。之后Federation v2做了大量改进设计,采用CRD机制扩展API,也被较为广泛认可和使用,但最终仍因一些设计缺陷无法被更为广泛地采用:

 

不兼容Kubernetes原生API,使用一套新的Fedrated API大幅增加使用者的学习成本。

 

缺乏扩展性,无法通过其僵化本质进行扩展,满足不同场景用例。

 

如今开源社区被广泛采用的多集群管理方案主要有Open Cluster Management(OCM)[2]Karmada[3],同时各云厂商也都相继推出自己的多集群/舰队管理方案,如ACK One舰队管理[4]

 

 

 

 

ACK One舰队统一管理多个K8s集群

 

 

 

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

 

 

ACK One舰队管理是基于开源社区的Open Cluster Management(OCM)构建的统一管理多集群的解决方案。舰队实例由ACK托管,可帮您省去大量的运维工作,从而专注于业务开发。

 

 

ACK One舰队包含以下核心能力:

 

1. ACK One GitOps[7]:托管ArgoCD实现的多集群应用的持续部署。

 

2. 多集群网关[8]:多集群Ingress,统一管理多集群的南北向流量,实现跨可用区高可用、标签路由等。

 

3. 多集群Service[9]:实现K8s社区标准的多集群服务API[10],跨集群服务发现。

 

4. 全局监控[11]:Prometheus全局聚合实例,统一多集群监控视图。

 

5. 服务网格:集成ASM,管理多集群服务间的东西向流量。

 

6. 统一的权限管理:统一管理RAM用户或角色的多集群的RBAC权限。

 

7. 多集群作业调度与分发[12]:支持Spark、TansorFlw和K8s Job/CronJob的优先级队列和多租调度。

 

 

 

 

ACK One GitOps

 

 

 

CNCF于2023年底发布的一项评估GitOps使用趋势的微观调查结果[13],其数据显示GitOps已经成为大多数开发者实现快速、一致、安全交付的首要选择。

 

 

ACK One GitOps基于CNCF毕业项目Argo CD构建,提供了面向多云、多集群、混合云的多集群应用GitOps持续交付能力。通过全托管Argo CD[14],集成ACK One的多集群、阿里云的RAM SSO等能力,为您提供开箱即用的ArgoCD能力,和完整、安全的多集群应用GitOps CD体验,快速、一致、安全地实现混合云、多集群下的应用持续部署。

 

 

1. 开发者通过ArgoCD UI/CLI/Go SDK创建 Application或者ApplicationSet,部署应用。

 

2. 开发者更新新镜像到镜像仓库,Image Updater检测到镜像更新后,将新tag更新到Git仓库的yaml中。

 

3. ArgoCD定时同步Git仓库的应用状态到云上、云下集群(GitOps中Secret管理基于KMS实现)。

 

4. 应用同步过程中状态变化实时钉钉通知。

 

ACK One GitOps具有如下优势:

 

托管开源ArgoCD,开箱即用,免运维,提供ArgoCD原生CLI和UI体验。

 

专属ArgoCD控制台域名,集成阿里云RAM用户/角色SSO登录,支持ArgoCD多租权限管理。

 

混合云、多集群分发,ACK One关联子集群自动加入ArgoCD,成为应用分发GitOps的目标集群。

 

支持ArgoCD ApplicationSet控制台,提升多集群应用分发体验。

 

更安全地发布多集群应用:支持GitOps中的 Secret管理,和ServiceAccount级别权限访问子集群。

 

 

 

客户案例 1:

多团队协同的混合云多集群应用的持续部署

 

 

当前有多个ACK One客户使用GitOps来构建跨多团队协同的、混合云多集群的应用持续部署,ACK One舰队管理混合云云上、云下数十个集群,并使用 GitOps实现数千应用的快速部署。ACK One会自动将关联子集群加入ArgoCD,成为应用分发的目标集群,简化了多集群应用分发流程。

 

GitOps涉及的多租权限管理主要有:为RAM用户和 RAM角色授予ArgoCD RBAC的权限[15],和通过 ArgoCD Projects管理RAM用户和RAM角色对目标集群、仓库、应用(Application)的RBAC权限。

 

 

跨多团队协同的、混合云多集群的应用持续部署案例的构建步骤为以下4步:

 

1. 通过ACK One注册集群将IDC集群注册到阿里云上。

 

2. ACK One舰队通过关联集群,统一管理云上多地域的ACK集群和云下IDC集群。

 

3. 通过ACK One GitOps快速部署应用到云上、云下集群。

 

4. 在ArgoCD UI上为不同RAM用户或角色配置不同的应用级别的权限控制,然后使用RAM用户或角色 SSO到ArgoCD UI验证其自身权限。详情可参考GitOps用户管理[16]

 

 

 

客户案例 2:

构建Git事件驱动的自动化CI/CD Pipeline

 

 

ACK One Serverless Argo工作流集群[17](Argo Workflows)是ACK One全托管的Argo Workflows,并提升了其性能、稳定性、可观测、运维能力等。阿里云事件总线EventBridge[18]是阿里云提供的无服务器事件总线服务,在可用性、易用性、安全性等多方面具有显著优势。

 

ACK One GitOps结合此二者(EventBridge+Argo Workflows+Argo CD),可以简单快速、高效、低成本地交付您的应用,为您实现代码提交即交付的自动化CI/CD系统。CI Pipeline的构建请详见基于 EventBridge的事件驱动CI Pipeline[19]

 

 

1. 用户向Git仓库提交代码(push commit)。

 

2. EventBridge根据配置的规则,Git事件触发其向ACK One工作流集群提交CI 工作流。

 

3. 基于ACK One工作流集群的CI工作流[20]来构建Docker Image,并推送至镜像仓库(ACR EE)中。

 

4. 通过GitOps自动同步相应镜像变化至ACK集群。

 

 

 

 

多集群网关

 

 

 

ACK One多集群网关是ACK One为多云、多集群环境提供的云原生网关,统一管理一个地域的多个集群的七层南北流量。ACK One通过托管MSE Ingress,以Ingress API来定义流量路由规则,支持跨多集群的多种能力:HTTP Routing、traffic splitting、health-based自动平滑容灾、traffic mirroring、基于副本数负载均衡流量等。您可以使用多集群网关构建同城容灾、标签路由、权重路由等能力。

 

 

多集群网关具有以下优势:

 

地域级别的多集群Global Ingress,统一管理多集群南北7层流量。

 

简化多集群流量管理:在舰队实例中统一完成多集群Ingress规则设置,无需单独操作每个子集群。且兼容Nginx Ingress。

 

多集群网关自身是跨AZ高可用的。

 

毫秒级Fallback:某集群后端故障时,多集群网关平滑迁移流量到其他后端。

 

网关托管,免运维。

 

 

 

客户案例:

多集群、混合云同城容灾

 

 

搭建混合云容灾系统需要以下5步,详细请参考基于 ACK One构建混合云同城容灾系统[21]

 

1. 使用ACK One注册集群管理IDC/第三方公共云K8s集群。

 

2. 实现云下网络与云上VPC的互联互通。

 

3. 创建ACK One舰队并关联集群。

 

4. 使用ACK One GitOps发布应用到多个集群(可选)。

 

5. 使用ACK One多集群网关管理多集群流量。

 

 

 

 

 

多集群Service

 

 

 

ACK One舰队管理通过实现K8s社区标准的多集群服务API的多集群Service实现跨集群的服务发现,可以在以下场景帮助您:

 

 

1. 高可用性:多个集群运行同一个核心Service。

 

2. 有状态Service和无状态Service:隔离部署,有状态服务读写分离。

 

3. 共享Service:多集群共享的Service,例如监控/密钥服务。

 

4. 迁移:一个Service部署到2个集群,逐步迁移。如云下迁移到云上。

 

以下是ACK One多集群Service的架构:

 

1. 图中链路1为管控链路,Fleet实例管理关联集群Kubernetes服务的导出与导入。

 

通过在集群ACK Cluster 1上创建服务导出 ServiceExport对象,ACK Cluster 1成为服务提供者,将服务Service 1设置为允许集群外访问。

 

通过在集群ACK Cluster 2上创建服务导入 ServiceImport对象,ACK Cluster 2成为服务消费者,访问服务提供者导出的服务。

 

2. 图中链路2为数据链路,在ACK Cluster 1导出 Service 1服务,ACK Cluster 2导入Service 1服务后,ACK Cluster 2可以访问ACK Cluster 1的 Service 1服务。实现跨集群的Kubernetes服务访问。

 

 

下图是为了实现Cluster 2上的Client Pod跨集群访问Cluster 1上service1服务,多集群Service原理如下:

 

1. ACK One舰队实例中有个名为Multi-cluster Service Controller的组件,其负责监听用户创建的ServiceExport(导出服务)和ServiceImport(导入服务)。

 

2. 导出服务时获取service1的后端,在导入服务时将这些后端创建于EndpointSlice中,与ServiceImport进行关联。

 

3. 并在导入服务时,创建amcs-为前缀的Service amcs-service1,与EndpointSlice关联。

 

4. 最终Cluster 2中的Client Pod可以通过两种域名跨集群访问Cluster 1中的service1:

 

a.service1.provider-ns.svc.clusterset.local

Client Pod通过该域名访问需要在CoreDNS中开启多集群插件,其后Client Pod解析该域名会返回 ServiceImport的IP,最终可以通过与其关联的 EndpointSlice中的IPs访问到Cluster1的Pods。

 

b.amcs-service1.provider-ns.svc.cluster.local

Client Pod通过该域名访问,K8s集群中正常的 Service域名解析,通过关联的EndpointSlice中的 IPs访问到Cluster1的Pods。

 

 

 

 

客户案例:

Headless多集群Service跨集群访问有状态服务指定实例

 

 

如对于MySQL服务,可以使用该能力可以实现 MySQL主从集群的读写分离,以提升性能和吞吐量,并提升系统的可靠性和容错性。

 

通过Headless多集群Service跨集群访问有状态服务的指定实例[22]主要步骤如下:

 

1. ACK One舰队实例管理关联集群(ACK Cluster 1、ACK Cluster 2)中MySQL服务的导出与导入。

 

2. ACK Cluster 1作为服务提供者集群,在ACK Cluster 1上创建MySQL服务,和ServiceExport对象以导出服务。

 

3. ACK Cluster 2作为服务消费者集群,在ACK Cluster 2上创建ServiceImport对象以导入服务。

 

4. 在Cluster 2中,Client Pod可通过指定Pod实例名的域名跨集群访问Cluster 1中的MySQL服务的某个Pod实例,如通过以下两个域名都是访问到mysql-0:

 

a.mysql-0.mysql.provider-ns.svc.clusterset.local

 

b.mysql-0.amcs-mysql.provider-ns.svc.cluster.local

 

 

 

 

 

全局监控

 

 

 

ACK One舰队管理的全局可观测,包含全局监控、全局FinOps,另外包含全局事件中心等在建能力。

 

ACK One舰队管理统一管理各种K8s集群,屏蔽管控差异,再结合阿里云可观测监控Prometheus版的聚合实例聚合各集群的指标,为您提供全局统一的监控视图,助力您的业务稳定运行。

 

 

 

 

 

总结

 

 

 

ACK One舰队管理是阿里云为您提供的强大的多集群管理方案,功能众多:GitOps应用分发、多集群网关、多集群Service、全局可观测、服务网格、统一权限管理和多集群作业调度与分发,方便您轻松应对混合云、多集群、容灾等场景的问题,简化多集群管理。托管的舰队实例(K8s集群)、托管的ArgoCD等也最小化您的运维工作,让您更加专注于业务开发。

 

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

 

相关链接:

 

[1] KubeFed

https://github.com/kubernetes-sigs/kubefed

 

[2] Open Cluster Management(OCM)

https://open-cluster-management.io/

 

[3] Karmada

https://karmada.io/

 

[4] ACK One舰队管理

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

 

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

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

 

[6] ACK One注册集群

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

 

[7] ACK One GitOps

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

 

[8] 多集群网关

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/multi-cluster-gateway-overview

 

[9] 多集群Service

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

 

[10] 多集群服务API

https://multicluster.sigs.k8s.io/concepts/multicluster-services-api/

 

[11] 全局监控

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

 

[12] 多集群作业调度与分发

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

 

[13] 微观调查结果

https://www.cncf.io/blog/2023/11/07/cncf-gitops-microsurvey-learning-on-the-job-as-gitops-goes-mainstream/

 

[14] Argo CD

https://argoproj.github.io/cd/

 

[15] ArgoCD RBAC的权限

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/manage-users-based-on-gitops?spm=a2c4g.11186623.0.0.43be734fVamflQ#6f2facdfddgxr

 

[16] GitOps用户管理

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/manage-users-based-on-gitops?spm=a2c4g.11186623.0.0.448d9c2bUi8A8Z#d7b0b14880bq3

 

[17] ACK One Serverless Argo工作流集群

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

 

[18] 事件总线EventBridge

https://help.aliyun.com/zh/eventbridge/product-overview/what-is-eventbridge

 

[19] 基于EventBridge的事件驱动CI Pipeline

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/use-cases/event-driven-ci-pipeline-based-on-eventbridge

 

[20] ACK One工作流集群的CI工作流

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/use-cases/building-a-ci-pipeline-of-golang-project-based-on-workflow-cluster

 

[21] 基于ACK One构建混合云同城容灾系统

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/use-cases/construction-of-hybrid-cloud-disaster-recovery-system-based-on-ack-one

 

[22] 通过Headless多集群Service跨集群访问有状态服务的指定实例

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/cross-cluster-access-to-a-specified-stateful-service-instance-through-a-headless-multi-cluster-service


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

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

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

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
10月前
|
运维 Kubernetes Cloud Native
智联招聘 × 阿里云 ACK One:云端弹性算力颠覆传统 IDC 架构,打造春招技术新范式
在 2025 年春季招聘季的激战中,智联招聘凭借阿里云 ACK One 注册集群与弹性 ACS 算力的深度融合,成功突破传统 IDC 机房的算力瓶颈,以云上弹性架构支撑千万级用户的高并发访问,实现招聘服务效率与稳定性的双重跃升。
|
7月前
|
Kubernetes Devops 应用服务中间件
基于 Azure DevOps 与阿里云 ACK 构建企业级 CI/CD 流水线
本文介绍如何结合阿里云 ACK 与 Azure DevOps 搭建自动化部署流程,涵盖集群创建、流水线配置、应用部署与公网暴露,助力企业高效落地云原生 DevOps 实践。
783 1
|
10月前
|
运维 监控 Cloud Native
智联招聘 × 阿里云 ACK One:云端弹性算力颠覆传统 IDC 架构,打造春招技术新范式
在 2025 年春季招聘季的激战中,智联招聘凭借阿里云 ACK One 注册集群与弹性 ACS 算力的深度融合,成功突破传统 IDC 机房的算力瓶颈,以云上弹性架构支撑千万级用户的高并发访问,实现招聘服务效率与稳定性的双重跃升。文章介绍了 ACK One+ACS 的弹性架构如何解决了春招的燃眉之急,让智联招聘的技术团队能够聚焦创新业务开发,欢迎关注。
|
11月前
|
资源调度 Kubernetes 调度
从单集群到多集群的快速无损转型:ACK One 多集群应用分发
ACK One 的多集群应用分发,可以最小成本地结合您已有的单集群 CD 系统,无需对原先应用资源 YAML 进行修改,即可快速构建成多集群的 CD 系统,并同时获得强大的多集群资源调度和分发的能力。
705 9
|
11月前
|
资源调度 Kubernetes 调度
从单集群到多集群的快速无损转型:ACK One 多集群应用分发
本文介绍如何利用阿里云的分布式云容器平台ACK One的多集群应用分发功能,结合云效CD能力,快速将单集群CD系统升级为多集群CD系统。通过增加分发策略(PropagationPolicy)和差异化策略(OverridePolicy),并修改单集群kubeconfig为舰队kubeconfig,可实现无损改造。该方案具备多地域多集群智能资源调度、重调度及故障迁移等能力,帮助用户提升业务效率与可靠性。
|
9月前
|
运维 Kubernetes 持续交付
ACK One GitOps:让全球化游戏服务持续交付更简单
ACK One GitOps 致力于提供开箱即用的多集群 GitOps 持续交付能力,简化游戏等服务的多集群/多地域统一部署,让您更加专注于业务开发。
|
12月前
|
人工智能 Serverless 调度
突破地域限制,实现算力无限供给 —阿里云ACK One注册集群开启多地域Serverless算力调度
本文介绍了阿里云ACK One注册集群多地域Serverless算力调度解决方案,解决传统数据中心在AI时代面临的算力不足问题。方案通过分钟级接入、100%兼容Kubernetes操作及云上Serverless弹性,实现跨地域弹性算力供给,支持高并发请求与模型快速迭代。文中详细描述了快速接入步骤、指定地域调度及动态调度方法,并提供了相关代码示例。该方案助力企业实现AI推理服务的规模化部署,提升商业落地效率。
|
12月前
|
人工智能 Serverless 调度
突破地域限制,实现算力无限供给 -- 阿里云ACK One注册集群开启多地域Serverless算力调度
传统单地域算力难以支撑AI推理场景的高并发实时响应、突发高流量的要求,阿里云容器服务ACK One注册集群推出多地域Serverless算力调度方案完美解决此问题。
|
6月前
|
人工智能 算法 调度
阿里云ACK托管集群Pro版共享GPU调度操作指南
本文介绍在阿里云ACK托管集群Pro版中,如何通过共享GPU调度实现显存与算力的精细化分配,涵盖前提条件、使用限制、节点池配置及任务部署全流程,提升GPU资源利用率,适用于AI训练与推理场景。
541 1
|
6月前
|
弹性计算 监控 调度
ACK One 注册集群云端节点池升级:IDC 集群一键接入云端 GPU 算力,接入效率提升 80%
ACK One注册集群节点池实现“一键接入”,免去手动编写脚本与GPU驱动安装,支持自动扩缩容与多场景调度,大幅提升K8s集群管理效率。
362 89

推荐镜像

更多