1.3. Argo Rollouts 架构概述


通过安装 Red Hat OpenShift GitOps Operator 并配置 RolloutManager 自定义资源(CR)实例,在集群中启用了 Argo Rollouts 支持。

创建 RolloutManager CR 后,Red Hat OpenShift GitOps Operator 会将 Argo Rollouts 安装到同一命名空间中。此步骤包括安装 Argo Rollouts 控制器,以及处理 Argo Rollouts 所需的资源,如 CR、角色、角色绑定和配置数据。

Argo Rollouts 控制器以两种不同的模式安装:

  • 集群范围的模式 (默认):控制器在集群的所有命名空间中超载资源。
  • 命名空间范围的模式 :控制器监控部署 Argo Rollouts 的命名空间中的资源。

Argo Rollouts 的架构构建为组件和资源。组件用于管理资源。例如,A AnalysisRun 控制器管理 AnalysisRun CR。

Argo Rollouts 包括收集分析指标的多个机制,以验证是否部署了新应用程序版本:

  • Prometheus metrics: AnalysisTemplate CR 配置为连接到 Prometheus 实例,以评估一个或多个指标的成功或失败。
  • Kubernetes 作业指标 :Argo Rollouts 支持 Kubernetes 任务 资源,对资源指标运行分析。您可以根据成功运行 Kubernetes 作业,验证应用程序是否成功部署。

1.3.1. Argo Rollouts 组件

Argo Rollouts 由多个组件组成,允许用户在 OpenShift Container Platform 中练习进度交付。

表 1.1. Argo Rollouts 组件
Name描述

Argo Rollouts 控制器

Argo Rollouts Controller 是标准 Deployment 资源的替代方案,并与之合作。此控制器只响应 Argo Rollouts 资源中的更改,并管理 Rollout CR。Argo Rollouts Controller 不会修改标准部署资源。

AnalysisRun 控制器

AnalysisRun 控制器管理并执行 AnalysisRunAnalysisTemplate CR 的分析。它将推出部署连接到指标提供程序,并为指标定义阈值,来确定应用程序的部署更新是否成功。

试用控制器

Experiment 控制器在短期副本集上运行分析,并管理 Experiment 自定义资源。控制器也可以通过在 canary 部署策略 字段中的 试验 步骤与 Rollout 资源集成。

服务和 Ingress 控制器

Service 控制器管理 Service 资源,Ingress 控制器管理由 Argo Rollouts 修改的 Ingress 资源。这些控制器在应用程序实例中注入额外的元数据注解,以进行流量管理。

Argo Rollouts CLI 和 UI

Argo Rollouts 支持名为 Argo Rollouts CLI 的 oc/kubectl 插件。您可以从命令行与 rollouts、analyses 和 experiments 等资源交互。它可以执行操作,如 暂停提升重试。Argo Rollouts CLI 插件可以在浏览器中启动本地 Web UI 仪表板,以增强视觉化 Argo Rollouts 资源的体验。

1.3.2. Argo Rollouts 资源

Argo Rollout 组件管理几个资源以启用进度交付:

  • 特定于推出部署的资源 :例如,Rollout、AAnalysisRunExperiment
  • Kubernetes 网络资源 :例如,用于网络流量的 ServiceIngressRoute。Argo Rollouts 与这些资源集成,称为流量管理。

这些资源对于通过 Rollout CR 自定义应用程序部署至关重要。

Argo Rollouts 支持以下操作:

  • 路由 canary 部署基于百分比的流量。
  • 使用 ServiceIngress 资源将传入的用户流量转发到正确的应用程序版本。
  • 使用多个机制来收集分析指标,以验证应用的部署。
表 1.2. Argo Rollouts 资源
Name描述

rollout

此 CR 使用 Canary 或蓝绿部署策略启用应用程序的部署。它取代了内置的 Kubernetes Deployment 资源。

AnalysisRun

此 CR 用于执行分析,并汇总分析结果,将用户指导用户成功部署应用程序。AnalysisRun CR 是 AnalysisTemplate CR 的实例。

AnalysisTemplate

AnalysisTemplate CR 是一个模板文件,提供有关如何查询指标的说明。这些指令的结果以 AnalysisRun CR 的形式附加到推出部署中。AnalysisTemplate CR 可以在集群或特定推出部署上进行全局定义。您可以通过创建 Experiment 自定义资源来链接要在副本集上使用的 AnalysisTemplate 列表。

试用

Experiment CR 用于在部署过程中对应用程序运行简短分析,以确保正确部署应用程序。Experiment CR 可以独立使用,或作为 Rollout CR 的一部分运行。

服务和 Ingress

Argo Rollouts 使用 Service 和 Ingress 控制器通过服务和入口控制器原生支持路由流量。

RouteVirtualService

OpenShift Route 和 Red Hat OpenShift Service Mesh VirtualService 资源用于在不同应用程序版本间执行流量分割。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.