什么是 Argo CD

Argo CD 是一个为 Kubernetes 而生的,遵循声明式 GitOps 理念的持续部署(CD)工具。Argo CD 可在 Git 存储库更改时自动同步和部署应用程序
优势

  • 应用定义、配置和环境信息是声明式的,并可以进行版本控制
  • 应用部署和生命周期管理是全自动化的、是可审计的,清晰易懂

Argo CD 在 CI/CD 流程中的位置如下图所示:
什么是 Argo CD - 图1

  1. * 借助 Argo CD Kubernetes 集群上落地 CD

步骤

  • 将应用的 Git 仓库分为 Application Deployment file 和 Docker file 两个库。Docker file 用于存放应用的核心代码以及 Docker build file,后续将会直接打包成 Docker image;Application Deployment file 可以 Kustomize、Helm、Ksconnet、Jsonnet 等 多种 Kubernetes 包管理工具来定义;以 Helm 为例,Chart 中所使用到的 Image 由 Docker file Code 打包完成后提供
  • 使用 Jenkins 或 Gitlab 等 CI 工具进行自动化构建打包,并将 Docker image push 到 Harbor 镜像仓库
  • 使用 Argo CD 部署应用。Argo CD 可以独立于集群之外,并且支持管理多个 Kubernetes 集群。在 Argo CD 上配置好应用部署的相关信息后 Argo CD 便可以正常工作,Argo CD 会自动和代码仓库 Application deployment file 的内容进行校验,当代码仓库中应用属性等信息发生变化时,Argo CD 会自动同步更新 Kubernetes 集群中的应用;应用启动时,会从 Harbor 镜像仓库拉取 Docker image

Argo CD 安装指南⚓︎

  • 通过 KubeOperator 应用商店部署 Argo CD 非常简单,我们已经在应用商店直接支持一键部署 Argo CD

什么是 Argo CD - 图2

部署 Argo CD⚓︎

什么是 Argo CD - 图3

修改默认配置⚓︎

  • 根据需要修改默认配置,再点击提交,或者直接使用默认参数提交

什么是 Argo CD - 图4

等待服务就绪⚓︎

什么是 Argo CD - 图5

访问 Argo CD⚓︎

  • 我们是通过 NodePort 的方式访问 Argo CD ,获取 Argo CD 的 NodePort 信息,需要在该应用的描述信息中按照提示步骤,可以在 Kubernetes 集群任意 master、worker 节点中执行描述中的命令

什么是 Argo CD - 图6

什么是 Argo CD - 图7

Argo CD 使用指南⚓︎

创建 APP⚓︎

什么是 Argo CD - 图8

填写信息⚓︎

  • 填写应用名称: guestbook ,项目: default ,同步策略: 手动

什么是 Argo CD - 图9

配置来源⚓︎

什么是 Argo CD - 图10

选择集群⚓︎

  • 应用部署的目标集群: https://kubernetes.default.svc ,因为此次的 Argo CD 部署在 Kubernetes 集群当中,默认 Argo CD 已经帮我们添加好当前所在的 Kubernetes 集群,直接使用即可。Namespace 选择: my-app , Namespcae 可以在 Kubernetes 集群上使用 # kubectl create namespace my-app 命令来创建

什么是 Argo CD - 图11

单击创建⚓︎

什么是 Argo CD - 图12

同步(部署)⚓︎

  • 由于尚未部署应用程序,并且尚未创建 Kubernetes 资源,所以 Status 还是 OutOfSync 状态,因此我们还需要点击 SYNC 进行同步 (部署)。同时也可以安装 Argo CD 客户端,使用 Argo CD CLI 进行同步

argocd app sync guestbook

什么是 Argo CD - 图13

什么是 Argo CD - 图14

什么是 Argo CD - 图15

什么是 Argo CD - 图16

什么是 Argo CD - 图17
https://kubeoperator.io/docs/user_manual/argocd/#_7