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 中练习进度交付。
Name | 描述 |
---|---|
Argo Rollouts 控制器 |
Argo Rollouts Controller 是标准 |
AnalysisRun 控制器 |
AnalysisRun 控制器管理并执行 |
|
|
|
Service 控制器管理 |
Argo Rollouts CLI 和 UI |
Argo Rollouts 支持名为 Argo Rollouts CLI 的 |
1.3.2. Argo Rollouts 资源
Argo Rollout 组件管理几个资源以启用进度交付:
-
特定于推出部署的资源 :例如,
Rollout
、AAnalysisRun
或Experiment
。 -
Kubernetes 网络资源 :例如,用于网络流量的
Service
、Ingress
或Route
。Argo Rollouts 与这些资源集成,称为流量管理。
这些资源对于通过 Rollout
CR 自定义应用程序部署至关重要。
Argo Rollouts 支持以下操作:
- 路由 canary 部署基于百分比的流量。
-
使用
Service
和Ingress
资源将传入的用户流量转发到正确的应用程序版本。 - 使用多个机制来收集分析指标,以验证应用的部署。
Name | 描述 |
---|---|
|
此 CR 使用 Canary 或蓝绿部署策略启用应用程序的部署。它取代了内置的 Kubernetes |
|
此 CR 用于执行分析,并汇总分析结果,将用户指导用户成功部署应用程序。 |
|
|
|
|
| Argo Rollouts 使用 Service 和 Ingress 控制器通过服务和入口控制器原生支持路由流量。 |
|
OpenShift |