ArgoCD基本组件

ArgoCD有5个基本组件,

$ kubectl get po -n argocd
NAME                                 READY   STATUS    RESTARTS   AGE
argocd-application-controller-0      1/1     Running   0          19h
argocd-dex-server-767fb49f59-7rxn7   1/1     Running   0          19h
argocd-redis-65d6b6b4ff-29g6v        1/1     Running   0          19h
argocd-repo-server-67bf4499f-qnjwd   1/1     Running   0          19h
argocd-server-5c47bf87d-2dbbw        1/1     Running   0          19h

1.argocd-server:

提供 ArgoCD 服务的主要组件,是一个 gRPC/REST 服务器,提供 Web UI、CLI 和 CI/CD 系统所需的 API。它通过 API 与客户端通信,并处理来自 Git 存储库的声明性配置。argocd-server 还负责与 Kubernetes API 服务器通信,以将声明的状态与实际状态保持同步。

2. argocd-repo-server:

用于在 ArgoCD 中提供 Git 存储库的服务,负责维护 Git 仓库的本地缓存,其中保存着应用程序清单。它允许 ArgoCD 通过 HTTP 或 HTTPS 访问存储库,并从中读取或生成 Kubernetes 资源的声明性配置。

3. argocd-application-controller:

负责应用资源的状态同步。它是一个 Kubernetes 控制器,持续监视运行中的应用程序,并将当前实际状态与期望的目标状态(在仓库中指定)进行比较。当它检测到不符合预期的应用程序状态,会调用 Kubernetes API 以创建、更新或删除资源,以确保它们与声明的状态保持一致。同时它还负责调用用户定义的钩子以进行生命周期事件(PreSync、Sync、PostSync)的管理。

4. argocd-dex-server:

负责处理用户身份验证和授权。ArgoCD 使用 Dex 进行身份验证,可以集成多种身份提供者(如 GitHub、LDAP 等)。argocd-dex-server 管理用户和团队的身份,并生成用于与 argocd-server 通信的令牌。

5. argocd-redis:

用于缓存和存储 ArgoCD 的状态信息。由于 argocd-server 可能会频繁地与 Kubernetes API 服务器通信,使用缓存可以提高性能并减轻对 API 服务器的负载。


参考文档:

  1. https://argo-cd.readthedocs.io/en/stable/operator-manual/architecture/

你可能感兴趣的:(ArgoCD,argocd,argocd基本组件)