作者:宇汇、壮怀
ACK One 概述
ACK One 是阿里云面向混合云、多集群、分布式计算等场景推出的分布式云容器平台,能够统一管理阿里云上、边缘、部署在客户数据中心以及其他云上的 Kubernetes 集群,并简化集群管理界面。
通过 ACK One 多集群管理,可以关联并管理各种形态的 Kubernetes 集群,提供统一的集群控制面,实现多集群统一的应用分发,流量管理,运维管理,安全管理。
两大重磅特性,覆盖应用分发和运维管理,持续提升多集群管理能力
ACK One 应用分发 GitOps
GitOps概述
应用分发 GitOps 的核心是使用 Git 仓库来管理应用的部署模版,将应用持续部署到指定 Kubernetes 集群中,并以 Git 仓库作为应用部署的唯一来源,不断调整 Kubernetes 集群上应用状态,最终与 Git 仓库中的期待状态一致。
GitOps 的优势:
- Git 易于被接受开发者接受,易于集成,无额外学习成本。
- Git 仓库作为应用部署的唯一来源,提供版本控制,快速回滚和审计能力。
- 安全性高,开发者使用 GitOps 不需要任何 Kubernetes 集群权限,只需要 Git 仓库权限。
- 应用持续部署,Kubernetes 集群和 Git 仓库中的应用状态自动同步,保持一致。
ArgoCD[1]是 CNCF 开源项目,遵循声明式 GitOps 理念的持续交付工具,对接 Git 仓库和 Helm 仓库,提供功能强大的可视化页面。ArgoCD 作为控制器运行在 Kubernetes 集群中,持续监控应用的实际状态,并与 Git 仓库中声明的期望状态保持同步。
ACK One GitOps -- 多集群应用分发
ACK One 多集群管理主控实例托管了开源 ArgoCD 实现应用的 GitOps 持续交付,同时集成 ACK One 多集群能力实现多集群的 GitOps 持续交付,满足应用的高可用部署,系统组件多集群分发等需求。
ACK One GitOps -- 优势
- 原生 ArgoCD 体验,支持 Argo CD 原生 CLI 和 UI。
- 多集群分发,ACK One 关联子集群自动加入 ArgoCD,成为应用分发 GitOps 的目标集群。
- 集成新版 ArgoCD,支持 ArgoCD Applicationset,提升多集群应用分发体验。
- 开箱即用,免运维。
ACK One GitOps -- 用户体验示例
1. 开启 ArgoCD:创建主控实例后,可以通过 aliyun cli,快速开启 ArgoCD。
> aliyun adcp UpdateHubClusterFeature --ClusterId <your_clusterid> --EnableArgoCD true
2. 原生 ArgoCD CLI -- Git 仓库管理
> argocd repo add https://code.aliyun.com/shuwei.hsw/echo-server.git --name echo-server > argocd repo list TYPE NAME REPO INSECURE OCI LFS CREDS STATUS MESSAGE PROJECT git https://code.aliyun.com/shuwei.hsw/echo-server.git false false false false Successful default
3. 原生 ArgoCD CLI -- 创建 GitOps 应用
> argocd app create echo-server --repo https://code.aliyun.com/shuwei.hsw/echo-server.git --path helm/echo-server --dest-namespace echo-server-cli --dest-server https://47.97.XX.XX:6443
4. 创建 ArgoCD ApplicationSet,多集群应用分发
cat << EOF | kubectl apply -f - apiVersion: argoproj.io/v1alpha1 kind: ApplicationSet metadata: name: echo-server spec: generators: - list: elements: - cluster: ack #部署的目标集群1 url: https://47.97.xx.xx:6443 - cluster: idc #部署的目标集群2 url: https://47.97.xx.xx:6443 template: metadata: name: '{{cluster}}-echo-server' spec: project: default source: repoURL: https://code.aliyun.com/shuwei.hsw/echo-server.git targetRevision: main path: manifests/directory/{{cluster}} destination: server: '{{url}}' namespace: multi-echo-server EOF
5. ArgoCD 原生 UI
ACK One 运维管理 -- 统一报警管理
概述
运维管理也是 ACK One 多集群管理的重要能力之一,可以简化多集群运维工作。运维多集群不再需要频繁切换集群界面,做重复操作,而是通过 ACK One 提供的统一集群控制面,一次操作,ACK One 多集群运维管理自动将运维指令下发到多集群中运行。提高运维效率,减少错误风险。
本次发布的 ACK One 统一报警管理,基于 ACK 单集群报警管理[2],由ACK One多集群管理主控实例统一配置报警规则,配置特定集群的差异化报警规则,主控实例将报警规则统一下发到指定的关联子集群中,并基于声明式原则,主控实例监视关联子集群的报警规则,保持与主控实例的一致性。同时,对新关联集群,主控实例可以自动同步报警规则。
报警规则差异化
在实际的使用场景中,不同集群可能需要不同的报警规则,例如:只对 GPU 集群开启 GPU 报警,对不同集群配置不同的报警阀值,对不同集群配置不同的报警联系人。ACK One 统一报警管理支持定义报警差异化配置,实现对不同集群的差异化报警规则配置。详细配置,见参考链接中的文档。
总结
本文介绍了 ACK One 近期发布的 2 个主要特性,增强了多集群应用分发与运维管理能力,包括应用分发 GitOps,统一报警管理。除多集群管理外,ACK One 更是支持连接并管理任何地域、任何基础设施上的 Kubernetes 集群,提供一致的管理和社区兼容的 API,支持对计算、网络、存储、安全、监控、日志、作业、应用、流量等进行统一运维管控。阿里云分布式云容器平台(简称 ACK One)是面向混合云、多集群、分布式计算、容灾等场景推出的企业级云原生平台。
分布式云容器平台 ACK One 产品限时公测中,欢迎点击此处前往 ACK One 产品详情页开通体验。
参考链接
分布式云容器平台 ACK One:
https://www.aliyun.com/product/aliware/adcp
ACK One 产品控制台:
https://cs.console.aliyun.com/one
多集群应用分发 GitOps:
https://help.aliyun.com/document_detail/456131.html
多集群统一报警管理:
https://help.aliyun.com/document_detail/459232.html
[1] ArgoCD:
https://argoproj.github.io/cd/
[2] ACK 单集群报警管理:
https://help.aliyun.com/document_detail/207725.html
感兴趣的同学欢迎钉钉搜索群号:35688562,进群交流~