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

作者:宇汇、壮怀

ACK One 概述

ACK One 是阿里云面向混合云、多集群、分布式计算等场景推出的分布式云容器平台,能够统一管理阿里云上、边缘、部署在客户数据中心以及其他云上的 Kubernetes 集群,并简化集群管理界面。

通过 ACK One 多集群管理,可以关联并管理各种形态的 Kubernetes 集群,提供统一的集群控制面,实现多集群统一的应用分发,流量管理,运维管理,安全管理。

1.png

两大重磅特性,覆盖应用分发和运维管理,持续提升多集群管理能力

ACK One 应用分发 GitOps

GitOps概述

2.png

应用分发 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 持续交付,满足应用的高可用部署,系统组件多集群分发等需求。

3.png

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
  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

4.png

ACK One 运维管理 -- 统一报警管理

概述

运维管理也是 ACK One 多集群管理的重要能力之一,可以简化多集群运维工作。运维多集群不再需要频繁切换集群界面,做重复操作,而是通过 ACK One 提供的统一集群控制面,一次操作,ACK One 多集群运维管理自动将运维指令下发到多集群中运行。提高运维效率,减少错误风险。

5.png

本次发布的 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,进群交流~

posted @ 2023-01-03 18:29  阿里云云原生  阅读(110)  评论(0编辑  收藏  举报