简述如何使用ArgoCD实现CI/CD部署? - reddit


ArgoCD 是一款出色的 Kubernetes 编排工具,下面从架构高度抽象描述一下:
通常一个公司内有3种“类型”的代码存储库:

  • 基础设施(主要是 Terraform)
    Terraform驱动基础设施的创建(如果它在某个地方实际存在,我们用Terraform来创建/销毁它)。通常是长期的,因为我们是通过自动缩放来Terraform k8s集群和虚拟机组。很少会有Terraform涉及到K8s资源。编写HCL来创建YAML是相当糟糕的。
  • 代码(实际产品代码):
    CI负责运行测试,并在 "代码 "仓库中构建镜像。一旦镜像构建完成,开发人员就会创建PR来更新 "部署 "版本(正在进行自动化),或者由cronjob来采集镜像。
  • 部署(包含 k8s 配置文件):
    ArgoCD负责 "CD "过程,一旦PR合并到 "部署 "版本,ArgoCD就负责推出,等等。