2.2. OpenShift GitOps 常用术语表
此术语表定义了常见的 OpenShift GitOps 术语。
- 应用程序控制器(Argo CD 应用程序控制器)
执行以下操作的控制器:
- 持续监控 Git 存储库的更改
- 监控正在运行的应用程序
- 将 live 状态与所需的目标状态进行比较
- 部署新更改
示例包括 Argo CD Application Controller 检测
OutOfSync
应用程序状态,并选择性地采取纠正操作。应用程序
自定义资源(CR)- 描述如何部署 Argo CD 应用程序的资源的 YAML 清单。
应用程序
自定义资源定义(CRD)- 代表环境中部署的 Argo CD 应用程序实例的资源对象。
ApplicationSet
CRD (Argo CD 应用程序集)-
根据
ApplicationSet
CR 的内容自动生成 Argo CD 应用程序的资源对象和 CRD。集群管理员使用此 CRD 定义单个ApplicationSet
CR,以生成和更新多个对应的 Argo CDApplication
CR。 - ApplicationSet Controller (Argo CD ApplicationSet Controller)
-
Argo CD 中存在并处理
ApplicationSet
CR 的自定义 Kubernetes 控制器。此控制器会根据ApplicationSet
CR 的内容自动创建、更新和删除 Argo CD 应用程序。 AppProject
CRD-
CRD 代表项目内应用程序的逻辑分组,它们管理允许应用程序管理资源的位置和方式。您可以使用
AppProject
CRD 来限制允许 Argo CD 用户访问这些应用程序的位置和方式。管理AppProject
实例通常仅限于 Argo CD 管理员。 - Argo CD API 服务器
- 公开 Web UI、CLI、持续集成(CI)和持续部署(CD)系统使用的 API 的 gRPC/REST 服务器。
- Argo CD
- 开源声明工具,可在集群和开发生命周期中自动部署基于 Kubernetes 的基础架构和应用程序。
- Argo CD 应用程序
- 一个应用程序,用于跟踪 GitOps 存储库中的单个 Kubernetes 资源(将资源定义为清单)到目标 Kubernetes 集群的应用程序。
ArgoCD
CRD- 描述给定 Argo CD 集群的预期状态的 Kubernetes CRD,允许您配置组成 Argo CD 集群的组件。
- Argo CD 实例
-
在命名空间中安装 Argo CD,它会封装正在运行的 Argo CD 的所有有状态方面。每个 Argo CD 实例通常都有一个带有
ArgoCD
CR 的一对一映射。 - Argo CD 项目
Argo CD 中的实体,引用 Argo CD 开源项目的 特定项目概念,以及对应的
AppProject
CR。Argo CD 项目允许您定义多个命名空间,甚至集群作为允许的目的地。相反,OpenShift 项目 仅限于一个命名空间,相当于一个命名空间的概念。
Argo CD 项目通过限制对 Git 存储库和远程集群的访问来控制 Argo CD 的行为。示例包括使用 Argo CD 项目来控制用户,方法是限制能够通过 Argo CD UI 或 Argo CD CLI 访问某些 Argo CD 应用程序或集群资源。
- Argo CD 仓库服务器(Argo CD-repo-server)
执行以下操作的 Argo CD 组件:
- 从源仓库(如 Git、Helm 或开放容器项目(OCI))读取
- 生成对应的应用程序清单
- 运行自定义配置管理工具
- 将结果返回到 Argo CD Application Controller
- Argo CD 资源(
ArgoCD
CR) -
描述给定 Argo CD 实例的预期状态的 CR。它允许您配置组成 Argo CD 实例的组件和设置。在任意给定时间,一个命名空间中只能有一个
ArgoCD
CR。 - Argo CD 服务器(Argo CD-server)
- 为 Argo CD 提供 API 和 UI 的服务器。
- Argo Rollouts
- 一个控制器,可用于管理在 Kubernetes 和 OpenShift Container Platform 集群上托管的应用程序的进度部署。此控制器具有一组 CRD,提供一组高级部署功能,如蓝绿、canary、canary 分析和实验等高级部署功能。
- 集群范围的实例
- Argo CD 配置为管理集群中的所有资源的模式,包括某些特定于集群的资源,如集群配置、集群 RBAC、Operator 资源、平台 Operator 或 secret。
- control plane (GitOps control plane)
在 GitOps 上下文中,您可以为每个安装的 Argo CD 有一个 control plane。GitOps control plane 是您可以安装 Argo CD 的任何命名空间。此 control plane 允许您在网络、实例和集群间置备、管理和操作 Argo CD。
在 control plane 命名空间中,Argo CD 维护一组以下 Kubernetes 资源,这些资源定义源 Git 存储库和目标集群之间的持续部署:
-
Argo CD
Application
CR -
ConfigMap
API 对象 -
代表部署目标的 GitOps 存储库凭证的 secret 对象
openshift-gitops
是默认 Argo CD 实例的 control plane 命名空间。-
Argo CD
- 声明性设置
- 有关系统和应用程序设置或配置所需的基础架构声明描述。您可以在 Git 存储库中的 YAML 配置文件中指定此描述。声明性设置包含一个自动化过程,使您的环境和基础架构与上述状态匹配。例如,使用 YAML 清单以声明性方式定义 Argo CD 应用程序、项目和设置。
- 默认 Argo CD 实例(默认的集群范围的实例)
-
Red Hat OpenShift GitOps Operator 在安装后立即实例化的默认实例,在
openshift-gitops
命名空间中,具有管理某些集群范围资源的额外权限。 - GitOps
- 为云原生应用实施持续部署的一种声明方式。在 GitOps 中,Git 存储库包含部署资源,Argo CD 与其集群状态保持同步。
- GitOps CLI (GitOps
argocd
CLI) - 从命令行配置和管理 Red Hat OpenShift GitOps 和 Argo CD 资源的工具。
- 实例范围
- 决定如何操作 Argo CD 实例的模式。可用的模式 是集群范围的实例和命名空间范围的实例。
- 实时状态
- 目标集群中的应用程序资源的实时状态。
- 本地集群
- 安装 Argo CD 的集群。
- 清单(Manifest)
-
在 GitOps 上下文中,清单是 GitOps 存储库中定义的 Kubernetes 资源的 YAML 表示,旨在将这些资源部署到目标 Kubernetes 集群。示例包括
Deployment
、ConfigMap
或Secret
等资源的 YAML 表示。 - 多租户
- 软件架构,单一软件实例为多个不同的用户组提供服务。
- 命名空间范围的实例(应用程序交付实例)
- Argo CD 配置为仅在集群中的特定命名空间中管理资源,并使用资源交付。
- 通知控制器(Argo CD 通知控制器)
- 持续监控 Argo CD 应用程序的控制器,并提供灵活的方法来通知用户有关应用程序状态的重要更改。
- 进度交付
- 在 GitOps 上下文中,进度交付是一个以受控和逐步方式发布应用程序更新的过程。
- Red Hat OpenShift GitOps
- 使用 Argo CD 作为声明性 GitOps 引擎的 Operator,用于在多集群 OpenShift 和 Kubernetes 基础架构上启用 GitOps 工作流。
- 刷新
- 将 Git 存储库中的最新代码与 live 状态进行比较和确定区别的过程。例如,在 Argo CD UI 中,当点 Refresh 时,Argo CD 连接到应用程序的目标 Git 存储库,检索内容,然后从该内容生成清单。然后 Argo CD 将该目标状态与 live 集群状态进行比较。
- 远程集群
- 您可以声明性或使用 GitOps CLI 添加到 Argo CD 的集群。远程集群与安装 Argo CD 的本地集群不同。
- resource Exclusion
- 用于从发现和同步中排除资源的配置,以便 Argo CD 不知道它们。
- resource Inclusion
- 用于包含资源的配置,用于全局发现、同步和限制受管资源列表。
- 单一租期
- 软件架构,单一软件实例为单个用户或一组用户提供服务。
- 同步
- 将应用集群资源的实时状态与 Git 存储库中定义的目标状态同步,以确保一致性。示例包括通过使用 Argo CD UI 将更改应用到集群来同步应用程序。
- 同步状态
- 指明 live 状态是否与目标状态匹配的应用程序状态。
- 目标状态
- 想要的应用程序资源的状态,如 Git 存储库中的文件表示。
- 用户定义的 Argo CD 实例
安装和部署的自定义 Argo CD 实例来管理集群配置或部署应用程序。默认情况下,任何新的用户定义实例都只能管理部署它的命名空间中的资源。
您可以在任何命名空间中创建用户定义的 Argo CD 实例,而不是
openshift-gitops
命名空间。- Workload
-
任何进程通常在资源内定义,如
Deployment
、StatefulSet
、ReplicaSet
、Job
或Pod
,在容器内运行。示例包括 Spring Boot 应用、NodeJS Express 应用或 Ruby on Rails 应用。