×

Red Hat OpenShift GitOps 是一款使用 Argo CD 作为声明式 GitOps 引擎的 Operator。它支持跨多集群 OpenShift 和 Kubernetes 基础设施的 GitOps 工作流程。使用 Red Hat OpenShift GitOps,管理员可以一致地配置和部署基于 Kubernetes 的基础设施和应用程序,跨越多个集群和开发生命周期。Red Hat OpenShift GitOps 基于开源项目 Argo CD,并提供与上游产品类似的功能集,同时还具有额外的自动化功能、与 Red Hat OpenShift 容器平台的集成以及 Red Hat 企业支持、质量保证和企业安全方面的优势。

由于 Red Hat OpenShift GitOps 的发布节奏与 OpenShift Container Platform 不同,Red Hat OpenShift GitOps 文档现在作为每个产品次要版本的单独文档集提供。

Red Hat OpenShift GitOps 文档可在 https://docs.openshift.org.cn/gitops/ 获取。

可以使用版本选择器下拉菜单或直接在 URL 中添加版本来获取特定版本的文档,例如 https://docs.openshift.org.cn/gitops/1.8

此外,Red Hat OpenShift GitOps 文档也可在 Red Hat 门户网站上获取:https://access.redhat.com/documentation/en-us/red_hat_openshift_gitops/

有关 Red Hat OpenShift GitOps 生命周期和支持平台的更多信息,请参阅 平台生命周期策略

Red Hat OpenShift GitOps 确保在将应用程序部署到不同环境(例如开发、登台和生产)中的不同集群时保持应用程序的一致性。Red Hat OpenShift GitOps 将部署流程组织在配置存储库周围,并使其成为核心要素。它至少始终包含两个存储库。

  1. 包含源代码的应用程序存储库

  2. 定义应用程序所需状态的环境配置存储库

这些存储库包含您在指定环境中所需的架构的声明式描述。它们还包含一个自动化流程,使您的环境与所描述的状态匹配。

Red Hat OpenShift GitOps 使用 Argo CD 来维护集群资源。Argo CD 是一个开源的声明式工具,用于应用程序的持续部署 (CD)。Red Hat OpenShift GitOps 将 Argo CD 实现为控制器,以便它持续监控在 Git 存储库中定义的应用程序定义和配置。然后,Argo CD 将这些配置的指定状态与其在集群上的实时状态进行比较。

Argo CD 报告任何偏离其指定状态的配置。这些报告允许管理员自动或手动将配置与定义的状态同步。因此,Argo CD 使您能够交付全局自定义资源,例如用于配置 OpenShift Container Platform 集群的资源。

关键特性

Red Hat OpenShift GitOps 可帮助您自动化以下任务:

  • 确保集群在配置、监控和存储方面具有类似的状态

  • 将配置更改应用于多个 OpenShift Container Platform 集群或从中回滚

  • 将模板化配置与不同的环境关联

  • 跨集群(从登台到生产)推广应用程序

OpenShift GitOps 通用术语表

此术语表定义了 OpenShift GitOps 的常用术语。

应用程序控制器 (Argo CD 应用程序控制器)

执行以下操作的控制器:

  • 持续监视 Git 存储库中的更改

  • 监控正在运行的应用程序

  • 将实时状态与所需的预期状态进行比较

  • 部署新的更改

例如,Argo CD 应用程序控制器检测到OutOfSync应用程序状态,并可以选择采取纠正措施。

Application 自定义资源 (CR)

一个 YAML 清单,描述了您打算如何部署 Argo CD 应用程序的资源。

Application 自定义资源定义 (CRD)

表示环境中已部署的 Argo CD 应用程序实例的资源对象。

ApplicationSet CRD (Argo CD 应用程序集)

一个资源对象和一个 CRD,它根据ApplicationSet CR 的内容自动生成 Argo CD 应用程序。集群管理员使用此 CRD 定义单个ApplicationSet CR 来生成和更新多个相应的 Argo CD Application CR。

ApplicationSet 控制器 (Argo CD ApplicationSet 控制器)

存在于 Argo CD 中并处理ApplicationSet CR 的自定义 Kubernetes 控制器。此控制器根据ApplicationSet CR 的内容自动创建、更新和删除 Argo CD 应用程序。

AppProject CRD

一个 CRD,表示项目中应用程序的逻辑分组,它控制应用程序允许在何处以及如何管理资源。您可以使用AppProject CRD 来限制 Argo CD 用户允许访问这些应用程序的位置和方式。管理AppProject 实例通常是限制为 Argo CD 管理员的操作。

Argo CD API 服务器

一个 gRPC/REST 服务器,它公开由 Web UI、CLI、持续集成 (CI) 和持续部署 (CD) 系统使用的 API。

Argo CD

一个开源声明式工具,可自动跨集群和开发生命周期持续部署基于 Kubernetes 的基础架构和应用程序。

Argo CD 应用程序

一个应用程序,跟踪从 GitOps 存储库(其中资源定义为清单)到目标 Kubernetes 集群的单个 Kubernetes 资源的持续部署。

ArgoCD CRD

一个 Kubernetes CRD,它描述了给定 Argo CD 集群的所需状态,允许您配置构成 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 应用程序控制器

Argo CD 资源 (ArgoCD CR)

一个 CR,它描述了给定 Argo CD 实例的所需状态。它允许您配置构成 Argo CD 实例的组件和设置。在任何给定时间,您在一个命名空间中只能拥有一个ArgoCD CR。

Argo CD 服务器 (Argo CD-server)

提供 Argo CD 的 API 和 UI 的服务器。

Argo Rollouts

一个控制器,您可以使用它来管理托管在 Kubernetes 和 OpenShift Container Platform 集群上的应用程序的渐进式部署。此控制器具有一组 CRD,提供高级部署功能,例如蓝绿部署、金丝雀部署、金丝雀分析和实验。

集群范围实例

Argo CD 配置为管理集群上的所有资源(包括某些集群特定资源,例如集群配置、集群 RBAC、Operator 资源、平台 Operator 或密钥)的模式。

控制平面 (GitOps 控制平面)

在 GitOps 上下文中,您可以为安装的每个 Argo CD 设置一个控制平面。GitOps 控制平面是您可以安装 Argo CD 的任何命名空间。此控制平面允许您跨网络、实例和集群配置、管理和操作 Argo CD。

在控制平面命名空间内,Argo CD维护着一组Kubernetes资源,这些资源定义了源Git仓库和目标集群之间的持续部署。

  • Argo CD Application CRs

  • ConfigMap API 对象

  • 表示GitOps仓库凭据和部署目标集群凭据的Secret对象

openshift-gitops是默认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的集群。

清单

在GitOps上下文中,清单是GitOps仓库中定义的Kubernetes资源的YAML表示,目的是将这些资源部署到目标Kubernetes集群。例如,DeploymentConfigMapSecret等资源的YAML表示。

多租户

一种软件架构,其中单个软件实例为多个不同的用户组提供服务。

命名空间范围实例(应用程序交付实例)

Argo CD被配置为仅管理集群上某些命名空间中的资源并使用这些资源进行应用程序交付的模式。

通知控制器(Argo CD通知控制器)

一个持续监控Argo CD应用程序并提供灵活方式来通知用户应用程序状态重要更改的控制器。

渐进式交付

在GitOps上下文中,渐进式交付是以受控和渐进的方式发布应用程序更新的过程。

Red Hat OpenShift GitOps

一个使用Argo CD作为声明式GitOps引擎来在多集群OpenShift和Kubernetes基础设施上启用GitOps工作流的操作符。

刷新

将Git仓库中的最新代码与实时状态进行比较并确定差异的过程。例如,在Argo CD UI中,当您单击**刷新**时,Argo CD会连接到应用程序的目标Git仓库,检索内容,然后从该内容生成清单。然后,Argo CD将该目标状态与实时集群状态进行比较。

远程集群

您可以声明式地或使用GitOps CLI添加到Argo CD的集群。远程集群与安装Argo CD的本地集群不同。

资源排除

用于排除资源以进行发现和同步的配置,以便Argo CD无法识别它们。

资源包含

用于包含资源以发现、同步和全局限制已管理资源列表的配置。

单租户

一种软件架构,其中单个软件实例为单个用户或用户组提供服务。

同步

将应用程序集群资源的实时状态与其在Git仓库中定义的目标状态同步以确保一致性的过程。例如,使用Argo CD UI将更改应用于集群来同步应用程序。

同步状态

指示实时状态是否与目标状态匹配的应用程序状态。

目标状态

应用程序资源的所需状态,以Git仓库中的文件表示。

用户定义的Argo CD实例

您安装和部署以管理集群配置或部署应用程序的自定义Argo CD实例。默认情况下,任何新的用户定义实例都只有权限管理其部署所在的命名空间中的资源。

您可以在任何命名空间(openshift-gitops命名空间除外)中创建用户定义的Argo CD 实例。

工作负载

任何进程,通常在诸如DeploymentStatefulSetReplicaSetJobPod之类的资源中定义,在容器中运行。例如,Spring Boot应用程序、NodeJS Express应用程序或Ruby on Rails应用程序。