ACKOneGitOps:ApplicationSetUI简化多...

科技梦想在奔跑 2024-10-29 19:12:35

Argo CD是适用于Kubernetes的声明式GitOps持续交付工具,它是CNCF社区的毕业项目。Application是其核心的资源,声明将指定Git仓库中的应用下发到指定的集群中。但是每个Application同时只能发送到1个集群,所以在多集群GitOps场景下通过ArgoCD Application发布应用,需要大量的人力成本。因此Argo CD发布了ApplicationSet,通过一个模板生成多个Applicaiton。但是ArgoCD UI一直没有推出控制台管理ApplicationSet的能力,通过ArgoCD CLI或者kubectl管理ApplicationSet并不直观,也不够方便。

ACK One GitOps新发布了多集群应用控制台,支持管理Argo CD ApplicationSet,提升大规模应用和集群的多集群GitOps应用分发管理体验。

什么是

Argo CD ApplicationSet ?

ApplicationSet是Argo CD中用来实现跨多个集群自动化和更加灵活地管理Applications的能力,它简化了管理,使得应对大规模Applicaiton和大量集群更加容易。可以实现使用一个Kubernetes manifest从1个或者多个Git仓库中部署多个应用到多个Kubernetes集群中:

• 部署一个应用到多个集群

• 部署多个应用到一个集群

• 部署多个应用到多个集群

ApplicationSet的功能由ApplicationSet CRD和ApplicationSet Controller实现,Controller通过ApplicationSet CRD定义的模板和generators来生成多个Application。Generators负责生成参数,填充到模板中,Argo CD提供了多种generator应用不同场景,下面列出常用的几个generator:

• List generator:根据固定的key-value列表生成参数

• Cluster generator:根据Argo CD中定义的集群列表自动生成集群参数

• Git generator:根据Git仓库的文件或目录结构生成参数

• Matrix generator:可以组合2个generator生成参数

ACK One GitOps

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

ACK One GitOps优势如下:

• 简化应用跨集群部署

- 支持控制台管理ApplicationSet、原生ArgoCD UI体验、阿里云RAM SSO ArgoCD UI

- 关联集群自动创建ArgoCD cluster secret

- 专属ArgoCD控制台域名,支持CNAME到客户自己的域名

• 提升高可用性:高可用ArgoCD,支持大规模应用

• 基于阿里云RAM的多租管理

• 提升可观测性

- ArgoCD的大盘监控和告警配置,可以查看ArgoCD的metrics和Application Controller等资源使用,及时了解情况。

- 支持ArgoCD日志采集和控制台查看

ACK One多集群应用

控制台管理ApplicationSet

当前Argo CD社区尚未支持通过UI来管理ApplicationSet,这对大规模应用管理场景并不友好,运维难度和成本增加,如:

• 可能需要既使用Argo CD CLI或者kubectl来管理ApplicationSet,又需要用Argo CD UI来查看和管理Applicaiton。

• 编写ApplicationSet yaml时需要先手动获取集群名称或者标签,然后再填入yaml中。

ACK One为了进一步提升用户体验,实现了多集群应用控制台来管理Argo CD ApplicationSet。

创建ApplicationSet

ACK One多集群应用控制台支持快捷创建和YAML创建两种方式创建ApplicationSet,两种方式的改动是互相联动的:

1. 快捷创建:为您提供快速将应用发布到1个或多个集群的能力。

可以通过ArgoCD Cluster名称和标签来选择集群,并在高级配置中可配置同步选项。

2. YAML创建:为您提供更灵活的创建能力。默认提供了demo yaml,将echo-server应用部署到该舰队的所有关联集群中。您可以在这里定义您自己的ApplicationSet,如使用了matrix和git等generator的ApplicationSet。

ApplicationSet创建的Applications展示

创建完ApplicationSet后,ApplicationSet Controller会生成多个Application,点击列表页的Application列的数字,即可查看该ApplicationSet创建和管理的Application列表。这个关联关系仅通过kubectl难以找到。

在该列表页,您可以快速查看概览信息,点击Application名称还可跳转ArgoCD UI查看应用详情。

跳转到如下ArgoCD UI的应用详情页,可以对应用进行同步、回滚(至指定版本),查看应用的完整资源拓扑、状态,并可在ArgoCD UI对资源(Application、Deployment等)进行修改。

编辑与删除ApplicationSet

在列表页中还支持对ApplicationSet进行编辑和删除。

总结

ACK One GitOps致力于为您提供简单、快速、安全的多集群GitOps持续交付能力,让您更加专注于业务开发。

0 阅读:0

科技梦想在奔跑

简介:感谢大家的关注