核心概念

argocd架构示意图

以下argocd概念需要具有Git、Docker、Kubernetes、Continuous DeliveryGitOps相关背景

  • Application(应用): 基于Kubernetes CRD定义的一组Kubernetes资源清单
  • 应用数据源类型: 构建应用的工具类型(helm等)
  • 目标状态: 描述应用的期望状态(如副本数、配额、调度等),由git仓库内的应用清单文件描述
  • 活动状态: 描述应用的活动状态(如副本数、配额、调度、探针状态等)
  • 同步状态: 描述应用活动状态与目标状态同步情况(是否一致)
  • 同步: 一个动作,使应用程序(集群内)与目标状态(git仓库清单文件描述)达成一致
  • 同步操作执行的状态: 描述同步动作是否成功
  • 刷新: 对比git仓库内的应用目标状态与活动状态,指出不同之处
  • 健康状态: 描述应用程序是否运行正常,可以对外提供服务
  • 工具: 创建应用程序清单描述文件的工具(如helm、Kustomize

Argo CD中项目是什么?

项目提供了应用程序的逻辑分组,这在Argo CD被多个团队使用时非常有用。项目提供以下特性:

  • 限制部署的内容(如可Git源代码库)
  • 限制应用部署的位置(目标k8s集群和命名空间)
  • 限制可部署或不可部署的对象类型(例如RBAC、CRDs、daemonset、NetworkPolicy等)
  • 定义项目角色以提供应用程序RBAC(绑定到OIDC组和/或JWT令牌)

关于默认项目

每个应用程序都属于一个项目。如果未指定,应用程序属于默认项目,该项目是自动创建的, 默认情况下允许从任何源repo部署到任何集群,以及所有资源类型。 默认业务群组只能被修改,不能被删除。最初创建时,它的规范声明如下:

spec:
  sourceRepos:
  - '*'
  destinations:
  - namespace: '*'
    server: '*'
  clusterResourceWhitelist:
  - group: '*'
    kind: '*'
Copyright © weiliang 2021 all right reserved,powered by Gitbook本书发布时间: 2024-04-22 16:03:42

results matching ""

    No results matching ""