ACK One GitOps 最佳实践

本文详细介绍了如何使用ACK One的GitOps功能进行多集群应用的自动化部署,包括通过ACK One GitOps控制台和ArgoCD CLI进行应用部署、升级和回滚。此外,还讨论了权限管理、多集群GitOps部署和CI流水线集成,提供了完整的实践指南和参考资料。
摘要由CSDN通过智能技术生成

ACK One 是阿里云面向混合云、多集群、分布式计算等场景推出的分布式云容器平台,能够统一管理阿里云上、边缘、部署在客户数据中心以及其他云上的 Kubernetes 集群,并简化集群管理界面。通过 ACK One 多集群管理,可以关联并管理各种形态的 Kubernetes 集群,提供统一的集群控制面,实现多集群统一的应用分发,流量管理,运维管理,安全管理,GitOps 能力。本文介绍如何使用 ACK One GitOps 能力在多集群发布应用,以及版本管理,自动更新,权限控制,CI 流水线集成等,帮助您快速上手 GitOps。

GitOps 概述

应用分发 GitOps 的核心是使用 Git 仓库来管理应用的部署模版,将应用持续部署到指定 Kubernetes 集群中,并以 Git 仓库作为应用部署的唯一来源,不断调整 Kubernetes 集群上应用状态,最终与 Git 仓库中的期待状态一致。

GitOps 的优势:

  • 简单易学

Git 易于被接受开发者接受,易于集成,无额外学习成本。

  • 可靠性强

Git 仓库作为应用部署的唯一来源,提供版本控制,快速回滚和审计能力。

  • 安全性高

开发者使用 GitOps 不需要任何 Kubernetes 集群权限,只需要 Git 仓库权限。

  • 应用持续部署

Kubernetes 集群和 Git 仓库中的应用状态自动同步,保持一致。

CNCF 在对2023 Cloud Native 的预测中指出 Gitops 已经成熟并进入生产力稳定期,CNCF Gitops 开源项目 Argo 已经在 2022 年 12 月正式成为 CNCF 毕业项目[1],标志着 Argo 项目的稳定性和成熟度,以及越来越多的用户使用 Argo 项目实现 GitOps 应用分发。

ArgoCD 是 Argo 项目的子项目,遵循声明式 GitOps 理念的持续交付工具,对接 Git 仓库和 Helm 仓库,提供功能强大的可视化页面。ArgoCD 作为控制器运行在 Kubernetes 集群中,持续监控应用的实际状态,并与 Git 仓库中声明的期望状态保持同步。

ACK One GitOps

ACK One 多集群管理主控实例托管了开源 ArgoCD 项目,实现应用的 GitOps 持续交付,同时集成 ACK One 多集群能力实现多集群的 GitOps 持续交付,满足应用的高可用部署,系统组件多集群分发等需求。

ACK One GitOps 优势如下:

  • 托管开源 ArgoCD,提供 ArgoCD 原生 CLI 和 UI 体验。
  • 专属 ArgoCD 控制台域名,集成阿里云账号 SSO 登录,支持 ArgoCD 多用户权限设置。
  • 多集群分发,ACK One 关联子集群自动加入 ArgoCD,成为应用分发 GitOps 的目标集群。
  • 支持 ArgoCD Applicationset,提升多集群应用分发体验。
  • 开箱即用,免运维。

使用 ACK One GitOps,您可以开箱即用获得 CNCF 毕业项目 ArgoCD 的 GitOps 能力,包括与阿里云账号集成的 ArgoCD 原生控制台和 CLI,多用户权限管理,多集群发布能力等,帮助您快速构建多集群发布流水线。

前提条件

  • 已开启多集群管理功能,具体操作,请参见开启多集群管理[2]
  • 主控实例已添加多个关联集群,本文示例为 ackpro-cluster1和ackpro-cluster2。具体操作,请参见添加关联集群[3]
  • 已在 ACK One 控制台 获取主控实例的 KubeConfig,并通过 kubectl 连接至主控实例。
  • 安装阿里云最新版 CLI[4]配置凭证[5]。如果是子账号操作,请在 RAM 中授予子账号 AliyunAdcpFullAccess 权限。
  • 访问 ArgoCD[6],下载安装最新的 ArgoCD CLI。
  • 安装 AMC 命令行工具。具体操作,请参见 AMC 命令行帮助[7]

通过 ACK One GitOps 控制台部署应用

步骤一:一键开启 ACK One GitOps(ArgoCD)

运行如下命令开启 GitOps,替换 clusterid 为您的主控实例 ID。

aliyun adcp UpdateHubClusterFeature --ClusterId <clusterid> --ArgoCDEnabled true

通过以上命令,ACK One 会在您的账号中创建一个 ECI 实例运行 ArgoCD 服务,创建一个内网 SLB 暴露ArgoCD Server 服务,同时生成 ArgoCD Server 域名,并设置 DNS 解析到 SLB 的内网 IP。

ArgoCD Server 域名格式:https://argocd. cluster id>..alicontainer.com,

您可以运行一下命令查看 GitOps 开启结果:

#查看ArgoCD pod
kubectl get pod -n argocd
NAME                             READY   STATUS    RESTARTS   AGE
argocd-server-76c9b99f47-c8hwn   8/8     Running   0          41s

#查看ArgoCD Server域名
kubectl get cm argocd-cm -n argocd -o json | jq .data.url
"https://argocd.xxx.cn-xx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值