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 CD Application 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 命名空间。

声明性设置
有关系统和应用程序设置或配置所需的基础架构声明描述。您可以在 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 集群。示例包括 DeploymentConfigMapSecret 等资源的 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
任何进程通常在资源内定义,如 DeploymentStatefulSetReplicaSetJobPod,在容器内运行。示例包括 Spring Boot 应用、NodeJS Express 应用或 Ruby on Rails 应用。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.