阿里云 ACK One 多集群管理再升级:GitOps 多集群持续集成,统一报警管理

作者:宇汇、壮怀

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  --EnableArgoCD true
  1. 原生 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
  1. 创建 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
  1. 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/produc...

ACK One 产品控制台:

https://cs.console.aliyun.com...

多集群应用分发 GitOps:

https://help.aliyun.com/docum...

多集群统一报警管理:

https://help.aliyun.com/docum...

[1] ArgoCD:

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

[2] ACK 单集群报警管理:

https://help.aliyun.com/docum...

感兴趣的同学欢迎钉钉搜索群号:35688562,进群交流~

你可能感兴趣的:(阿里云云原生)