跳到主要内容

argocd安装

argocd github

argocd官网

架构

argocd架构图

iShot_2025-04-25_16.57.41

包含组件

API Server(ArgoCD 接口服务器)

API Server 是 ArgoCD 的核心服务,提供 gRPC / REST 接口,被 Web UI、CLI 和 CI/CD 系统调用。它的职责包括:

  • 应用管理与状态汇报:接收和返回每个 Application 的状态信息(如是否同步、是否健康)
  • 执行操作指令:比如同步(Sync)、回滚(Rollback)、执行自定义 Hook
  • 仓库与集群凭据管理:Git 仓库地址、K8s 访问凭据等都通过 Secret 存储在集群里
  • 用户认证与授权:支持对接外部身份认证系统(如 Dex、LDAP、GitHub 登录等)
  • RBAC 权限控制:基于角色的权限控制,限制用户对不同项目、应用的访问权限
  • 监听 Git Webhook 事件:可接收 Git 推送事件,自动触发应用同步

Repository Server(Git 仓库处理服务)

Repository Server 是 ArgoCD 的内部服务,主要作用是处理 Git 仓库中的内容:

  • 在本地缓存 Git 仓库中的代码(防止每次都远程拉取)
  • 根据给定信息生成 Kubernetes YAML 文件:
    • Git 仓库地址
    • 分支、tag 或 commit(revision)
    • 仓库中某个路径
    • 模板参数(如 Helm 的 values.yaml、Kustomize 的参数)

它就像一个渲染引擎,把 Git 配置转换成 Kubernetes 可以直接部署的 YAML 文件

Application Controller(应用控制器)

Application Controller 是一个 Kubernetes 控制器,负责 ArgoCD 最核心的GitOps同步能力:

  • 实时监控应用状态:对比当前集群的实际状态和 Git 仓库中期望的状态
  • 如果状态不同(OutOfSync),就会标记出来
  • 如果配置了自动同步,会立即进行更新操作,保持一致
  • 支持自定义生命周期钩子(Hooks):
    • PreSync:同步前执行
    • Sync:同步时执行
    • PostSync:同步完成后执行

可以理解为:它是GitOps的执行官,负责让Git是真理真正落地到 Kubernetes 中

安装类型

Argo CD具有两种类型的安装:多租户(multi-tenant)和核心(core)

多租户 multi-tenant

多租户部署是 Argo CD 最常见的安装方式。这种部署模式通常由平台团队维护,面向多个应用开发团队提供服务

最终用户(即开发团队)可以通过 API Server 使用 Web UI 或 argocd 命令行工具来访问 Argo CD。使用命令行工具时,需要先执行 argocd login <server-host> 命令来进行登录配置(可以点击 这里 了解详情)

核心 core

Argo CD Core 部署主要用于无头(headless)模式下的轻量级部署。这种安装方式适合那些独立使用 Argo CD 的集群管理员,他们不需要多租户特性

Core 版包含的组件更少、部署起来也更简单:

  • 没有 API Server 和 Web UI,只能通过 argocd CLI 或者直接操作 Kubernetes 对象来管理
  • 安装的是各组件的轻量版,不支持高可用(非 HA 模式)

有关Argo CD 核心的更多详细信息,请参考 官方文档

组件名功能描述
argocd-serverAPI 层接收 CLI/UI 请求,处理登录、展示应用状态
argocd-repo-server渲染引擎把 Git 里的配置生成 K8s YAML
argocd-application-controllerGitOps 控制核心比较实际状态 vs 期望状态,自动部署
argocd-dex-server可选组件做身份认证(OAuth 登录)
argocd-redis缓存服务给 Controller 提速,非核心
argocd-applicationset-controller动态 Application 管理自动创建 Application(如多集群部署)
argocd-notifications-controller通知控制器发飞书/钉钉通知等

安装

更多安装方式可以参考 官方文档

这里选择helm安装,argocd helmgithub中的argocd helm源码

添加仓库

helm repo add argo https://argoproj.github.io/argo-helm

更新仓库

helm repo update

下载包

helm pull argo/argo-cd

解压缩

tar xf argo-cd-7.8.28.tgz && cd argo-cd

修改 values.yaml

安装

helm upgrade --install argocd -n devops --create-namespace .
Right Bottom Gif
Right Top GIF