5.2. 了解 OpenShift GitOps
5.2.1. 关于 GitOps
GitOps 是为云原生应用程序实施持续部署的一种声明方式。您可以使用 GitOps 创建可重复进程,用于在多集群 Kubernetes 环境间管理 OpenShift Container Platform 集群和应用程序。GitOps 以快速的速度处理和自动化复杂部署,节省部署和发行周期期间的时间。
GitOps 工作流通过开发、测试、临时和生产环境来推送应用程序。GitOps 部署新应用程序或更新现有应用程序,因此您只需要更新存储库,GitOps 会自动执行所有操作。
GitOps 是一组使用 Git 拉取请求来管理基础架构和应用程序配置的实践。GitOps 中的 Git 存储库是系统和应用程序配置的唯一来源。此 Git 存储库包含指定环境中所需的基础架构声明描述,并包含自动流程,以使您的环境与上述状态匹配。它还包含该系统的完整状态,以便可查看并可审核更改到系统状态。通过使用 GitOps,您可以处理基础架构和应用程序配置 sprawl 的问题。
GitOps 将基础架构和应用程序定义定义为代码。然后,它会使用此代码来管理多个工作区和集群来简化基础架构和应用程序配置的创建过程。根据代码原则,您可以在 Git 存储库中存储集群和应用程序的配置,然后按照 Git 工作流将这些存储库应用到所选集群中。您可以将在 Git 存储库中开发和维护软件的核心原则应用到创建和管理集群和应用程序配置文件。
5.2.2. 关于 Red Hat OpenShift GitOps
当应用程序部署到不同环境中的不同集群时,Red Hat OpenShift GitOps 可确保应用程序的一致性,如开发、临时和生产环境。Red Hat OpenShift GitOps 整理与配置仓库相关的部署过程,并将其作为核心元素。它总会保持至少有两个软件仓库:
- 源代码的应用程序仓库
- 定义应用程序所需状态的环境配置仓库
这些软件仓库包含您指定环境中所需的基础架构声明信息。它们还包含可让您的环境与上述状态匹配的自动过程。
Red Hat OpenShift GitOps 使用 Argo CD 来维护集群资源。Argo CD 是一个开源声明工具,用于应用程序的持续集成和持续部署(CI/CD)。Red Hat OpenShift GitOps 将 Argo CD 实现作为一个控制器,以便持续监控 Git 存储库中定义的应用程序定义和配置。然后,Argo CD 将这些配置的指定状态与集群中的实时状态进行比较。
Argo CD 报告与指定状态不同的配置。报告允许管理员自动或者手动将配置重新同步到定义的状态。因此,ArgoCD 可让您提供全局自定义资源,如用于配置 OpenShift Container Platform 集群的资源。
5.2.2.1. 主要特性
Red Hat OpenShift GitOps 可帮助您自动执行以下任务:
- 确保集群具有类似的配置、监控和存储状态
- 对多个 OpenShift Container Platform 集群应用或恢复配置更改
- 将模板配置与不同环境关联
- 在集群间(从调试到生产阶段)推广应用程序。