×

Argo Rollouts 支持通过RolloutManager自定义资源 (CR) 直接配置流量管理和指标插件。Argo Rollouts 对这些插件的原生支持消除了手动修改配置文件的需要,确保了整个系统配置的一致性。因此,Argo Rollouts 不再保留配置文件中的用户定义插件。相反,它只应用于RolloutManager CR 中指定的插件。通过在RolloutManager CR 中直接管理插件,您可以执行以下操作:

  • 集中控制插件配置。

  • 避免RolloutManager CR 和配置文件之间的冲突。

  • 简化插件管理,允许轻松添加、删除或修改插件,无需直接编辑配置文件。

流量管理插件控制在部署过程中不同应用程序版本之间的流量路由方式,而指标插件则收集和评估指标以确定部署的成功或失败。

先决条件

  • 您已以管理员身份登录到 OpenShift Container Platform 集群。

  • 您可以访问 OpenShift Container Platform Web 控制台。

  • 您已在 OpenShift Container Platform 集群上安装了Red Hat OpenShift GitOps

  • 您已在 OpenShift Container Platform 集群上安装了Argo Rollouts

在 Argo Rollouts 中启用流量管理和指标插件

要启用 Argo Rollouts 中的流量管理和指标插件,请完成以下步骤。

步骤
  1. 以集群管理员身份登录 OpenShift Container Platform Web 控制台。

  2. 在**管理员**视角中,点击**Operators** → **已安装的 Operators**。

  3. 从**项目**下拉菜单中创建或选择您要创建和配置RolloutManager自定义资源 (CR) 的项目。

  4. 从**已安装的 Operators**中选择**Red Hat OpenShift GitOps**。

  5. 在**详细信息**选项卡下的**提供的 API**部分,点击**RolloutManager**面板中的**创建实例**。

  6. 在**创建 RolloutManager**页面上,选择**YAML 视图**并编辑 YAML。

    RolloutManager CR 中添加流量管理和指标插件配置的示例
    apiVersion: argoproj.io/v1alpha1
    kind: RolloutManager
    metadata:
      name: argo-rollouts
    spec:
      plugins:
        trafficManagement:
          - name: argoproj-labs/gatewayAPI (1)
            location: https://github.com/sample-metric-plugin (2)
        metric:
          - name: argoproj-labs/sample-prometheus (3)
            location: https://github.com/sample-trafficrouter-plugin (4)
            sha256: dac10cbf57633c9832a17f8c27d2ca34aa97dd3d (5)
    1 指定trafficManagement插件的名称。
    2 指定trafficManagement插件的位置。
    3 指定metric插件的名称。
    4 指定metric插件的位置。
    5 可选:指定插件二进制文件的 SHA256 签名,该签名由 Rollouts 控制器下载和安装。
  7. 点击**创建**。

  8. 在**RolloutManager**选项卡下的**RolloutManagers**部分,验证 RolloutManager 实例的**状态**字段是否显示为**阶段:可用**。

  9. 通过完成以下步骤,验证流量管理和指标插件是否已正确安装

    1. 在**管理员**视角中,点击**工作负载** → **ConfigMaps**。

    2. 点击**argo-rollouts-config**配置映射。

      结果,在RolloutManager CR 中定义的插件将在**argo-rollouts-config**配置映射中更新。

      在**argo-rollouts-config** ConfigMap中更新的流量管理和指标插件示例
      kind: ConfigMap
      apiVersion: v1
      metadata:
        name: argo-rollouts-config
        namespace: argo-rollouts
        labels:
          app.kubernetes.io/component: argo-rollouts
          app.kubernetes.io/name: argo-rollouts
          app.kubernetes.io/part-of: argo-rollouts
      data:
        metricPlugins: |
            - name: "argoproj-labs/sample-prometheus" (1)
              location: https://github.com/sample-metric-plugin (2)
              sha256: dac10cbf57633c9832a17f8c27d2ca34aa97dd3d (3)
        trafficRouterPlugins: |
          - name: argoproj-labs/gatewayAPI (4)
            location: https://github.com/sample-metric-plugin (5)
            sha256: "" (6)
          - name: argoproj-labs/openshift (7)
            location: file:/plugins/rollouts-trafficrouter-openshift/openshift-route-plugin (8)
            sha256: "" (9)
      1 指定metric插件的名称。
      2 指定metric插件的位置。
      3 指定metric插件的 sha256 签名。
      4 指定trafficmanagement插件的名称。
      5 指定trafficmanagement插件的位置。
      6 指定trafficmanagement插件的 sha256 签名。
      7 指定默认trafficmanagement插件的名称。
      8 指定默认trafficmanagement插件的位置。
      9 指定trafficmanagement插件的 sha256 签名。

    通过RolloutManager CR 直接配置流量和指标插件,您可以简化发布流程,减少错误的可能性,并确保整个环境中插件管理的一致性。这增强了控制和灵活性,同时简化了部署过程。