2 什么是 Argo CD ?
通过 KubeOperator 内置 KubeApps Plus 应用商店支持基于 K8s 的 CI / CD 应用场景包括:GitLab、Jenkins、Harbor、Sonarqube、Argo CD 等; 其中 GitLab、Jenkins、Harbor 和 Sonarqube 在 KubeApps Plus 应用商店中已经是比较成熟且常见的应用,下面将详细介绍 Argo CD 应用场景。
Argo CD 是一个为 Kubernetes 而生的,遵循声明式 GitOps 理念的持续部署工具。Argo CD 可在 Git 存储库更改时自动同步和部署应用程序,其优势是:
- 应用定义、配置和环境信息是声明式的,并可以进行版本控制;
- 应用部署和生命周期管理是全自动化的、是可审计的,清晰易懂。
借助 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。