第 1 章 Argo Rollouts 概述
在 GitOps 上下文中,进度交付是一个以受控和逐步方式发布应用程序更新的过程。通过只向用户的子集公开新版本的应用更新,从而降低了发行版本的风险。这个过程涉及持续观察和分析这个新应用程序版本,以验证其行为是否与要求和预期集匹配。验证过程会逐渐向更广泛的和更广泛的受众公开应用程序更新。
OpenShift Container Platform 通过使用路由来分隔不同服务间的网络数据来实现渐进式交付的功能,但这通常需要人工的干预和管理。
使用 Argo Rollouts 作为集群管理员,您可以自动化进度部署交付,并管理 Kubernetes 和 OpenShift Container Platform 集群上托管的应用程序的进度部署。Argo Rollouts 是一个具有自定义资源定义(CRD)的控制器,它提供高级部署功能,如蓝绿、canary、canary Canary 分析和实验等高级部署功能。
1.1. 为什么使用 Argo Rollouts?
作为集群管理员,在传统基础架构中管理和协调高级部署策略通常涉及长时间维护窗口。使用 OpenShift Container Platform 和 Red Hat OpenShift GitOps 等工具实现自动化可以减少这些窗口,但设置这些策略仍具有挑战性。
使用 Argo Rollouts 通过允许应用程序团队以声明性方式定义其 rollout 策略来简化进度交付。团队不再需要定义多个部署和服务,或为测试的流量控制和集成创建自动化。
您可以使用以下原因来使用 Argo Rollouts:
- 您的用户可以在最终用户环境中更轻松地采用进度交付。
- 通过 Argo Rollouts 的可用结构和指南,您的团队不必了解流量管理器和复杂基础架构。
- 在更新过程中,您可以根据部署策略,通过逐步将流量转换为新版本来优化已部署应用程序版本的现有流量限制能力。
- 您可以将 Argo Rollouts 与 Prometheus 等指标供应商相结合,根据参数集进行基于指标和策略驱动的推出部署和回滚。
- 您的最终用户环境可获取 Red Hat OpenShift GitOps Operator 的安全性,并帮助管理资源、成本和时间。
- 您的现有用户使用 Argo CD 进行安全性和自动化部署的用户会提前获得相应的反馈,以避免对它们造成影响的问题。
1.1.1. Argo Rollouts 的好处
在 Red Hat OpenShift GitOps 中使用 Argo Rollouts 作为默认工作负载提供以下优点:
- 作为 GitOps 工作流的一部分的自动化进度交付
- 高级部署功能
- 优化现有的高级部署策略,如 blue-green 或 canary
- 部署可以实现零停机时间更新
- 细粒度、加权流量转换
- 能够在没有达到生产环境的新流量的情况下进行测试
- 自动回滚和提升
- 手工调整
- 可自定义的指标查询和分析业务关键性能指标 (KPI)
- 与 ingress 控制器和 Red Hat OpenShift Service Mesh 集成用于高级流量路由
- 与指标供应商集成以进行部署策略分析
- 使用多个供应商