Argo Rollouts


Red Hat OpenShift GitOps 1.9

Argo Rollouts を使用したプログレッシブ配信

Red Hat OpenShift Documentation Team

概要

このドキュメントでは、Argo Rollouts を使用して、宣言的ロールアウト戦略に必要なすべての定義をカプセル化する手順を説明します。また、GitOps ワークフローの一部としてデプロイメントのプログレッシブ配信を管理および自動化する方法についても説明します。

第1章 Argo Rollouts を使用したデプロイメントのプログレッシブ配信

重要

Argo Rollouts はテクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品サービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

プログレッシブ配信は、制御された段階的な方法で製品の更新をリリースするプロセスです。プログレッシブ配信では、最初に製品更新の新しいバージョンを一部のユーザーのみに公開することで、リリースのリスクを軽減します。このプロセスには、この新しいバージョンを継続的に観察および分析して、その動作が設定された要件および期待と一致するかどうかを検証することが含まれます。このプロセスにより、製品の更新が徐々に幅広いユーザーに公開されるため、検証は継続されます。

OpenShift Container Platform は、ルートを使用して異なるサービス間でトラフィックを分割することにより、ある程度の段階的な配信機能を提供しますが、これには通常、手動による介入と管理が必要です。

Argo Rollouts を使用すると、自動化とメトリック分析を使用して、デプロイメントのプログレッシブ配信をサポートし、アプリケーションの新しいバージョンの自動ロールアウトまたはロールバックを推進できます。Argo Rollouts は高度なデプロイメント機能を提供し、イングレスコントローラーやサービスメッシュとの統合を可能にします。Argo Rollouts を使用すると、デプロイされたアプリケーションのさまざまなバージョンを表す複数のレプリカセットを管理できます。導入戦略に応じて、既存のトラフィックシェーピング機能を最適化し、トラフィックを徐々に新しいバージョンに移行することで、更新中にこれらのバージョンへのトラフィックを処理できます。Argo Rollouts を Prometheus などのメトリックプロバイダーと組み合わせて、パラメーターセットに基づいてメトリックベースおよびポリシー駆動のロールアウトとロールバックを実行できます。

1.1. 前提条件

  • cluster-admin 権限でクラスターにアクセスできる。
  • OpenShift Container Platform Web コンソールにアクセスできる。
  • Red Hat OpenShift GitOps 1.9.0 以降のバージョンがクラスターにインストールされている。

1.2. Argo Rollouts の利点

従来のインフラストラクチャーでの高度なデプロイメント戦略の管理と調整には、多くの場合、長いメンテナンス期間がかかります。OpenShift Container Platform や Red Hat OpenShift GitOps などのツールを使用した自動化により、これらの期間を短縮できますが、これらの戦略を設定するのは依然として困難な場合があります。Argo Rollouts を使用すると、アプリケーションチームがロールアウト戦略を宣言的に定義できるようになり、このプロセスが簡素化されます。チームは、複数のデプロイメントやサービスを定義したり、トラフィックシェーピングやテストの統合のための自動化を作成したりする必要がなくなりました。Argo Rollouts を使用すると、宣言的ロールアウト戦略に必要なすべての定義をカプセル化し、プロセスを自動化および管理できます。

Argo Rollouts を Red Hat OpenShift GitOps のデフォルトのワークロードとして使用すると、次の利点があります。

  • GitOps ワークフローの一部として自動化されたプログレッシブ配信
  • 高度なデプロイメント機能
  • Blue-Green や Canary などの既存の高度なデプロイメント戦略を最適化します。
  • デプロイメント時のダウンタイムがない更新
  • きめ細かく重み付けされたトラフィックのシフト
  • 実稼働環境に新しいトラフィックが到達することなくテストできる
  • 自動化されたロールバックとプロモーション
  • 手動判定
  • カスタマイズ可能な指標クエリーとビジネス主要業績評価指標 (KPI) の分析
  • 高度なトラフィックルーティングのための Ingress コントローラーおよび Red Hat OpenShift Service Mesh との統合
  • デプロイメント戦略分析のためのメトリックプロバイダーとの統合
  • 複数のプロバイダーの使用

Argo Rollouts を使用すると、ユーザーはエンドユーザー環境でプログレッシブ配信をより簡単に導入できるようになります。これにより、チームがトラフィックマネージャーや複雑なインフラストラクチャーについて学ぶ必要がなく、構造とガイドラインが提供されます。Red Hat OpenShift GitOps Operator は自動ロールアウトにより、エンドユーザー環境にセキュリティーを提供し、リソース、コスト、時間を効果的に管理するのに役立ちます。セキュリティーと自動デプロイメントを備えた Argo CD を使用している既存のユーザーは、プロセスの早い段階でフィードバックを受け取り、影響を与える問題を回避できます。

1.3. RolloutManager のカスタムリソースと仕様について

Argo Rollouts を使用するには、クラスターに Red Hat OpenShift GitOps Operator をインストールし、選択した namespace で RolloutManager カスタムリソース (CR) を作成して Operator に送信する必要があります。RolloutManager CR のスコープを 1 つまたは複数の namespace に設定できます。Operator は、次の namespace スコープのサポートリソースを使用して argo-rollouts インスタンスを作成します。

  • Argo Rollouts コントローラー
  • Argo Rollouts メトリックサービス
  • Argo Rollouts サービスアカウント
  • Argo Rollouts のロール
  • Argo Rollouts のロールバインディング
  • Argo Rollouts のシークレット

RolloutsManager CR の仕様で、Argo Rollouts コントローラーリソースのコマンド引数、環境変数、カスタムイメージ名などを指定できます。RolloutManager CR 仕様は、Argo Rollouts の望ましい状態を定義します。

例: RolloutManager CR

apiVersion: argoproj.io/v1alpha1
kind: RolloutManager
metadata:
  name: argo-rollout
  labels:
    example: basic
spec: {}

1.3.1. Argo Rollouts コントローラー

Argo Rollouts コントローラーリソースを使用すると、namespace でのプログレッシブアプリケーション配信を管理できます。Argo Rollouts コントローラーリソースはクラスターのイベントを監視し、Argo Rollouts に関連するリソースに変更があるたびに反応します。コントローラーはロールアウトの詳細をすべて読み取り、クラスターをロールアウト定義に記述されているのと同じ状態にします。

1.4. RolloutManager カスタムリソースの作成

Red Hat OpenShift GitOps で Argo Rollouts を使用してデプロイメントのプログレッシブ配信を管理するには、選択した namespace で RolloutManager カスタムリソース (CR) を作成して設定する必要があります。デフォルトでは、新しい argo-rollouts インスタンスには、それがデプロイされている namespace でのみリソースを管理する権限がありますが、必要に応じて複数の namespace で Argo Rollouts を使用できます。

前提条件

  • Red Hat OpenShift GitOps 1.9.0 以降のバージョンがクラスターにインストールされている。

手順

  1. クラスター管理者として OpenShift Container Platform Web コンソールにログインします。
  2. Administrator パースペクティブで、OperatorsInstalled Operators をクリックします。
  3. Project ドロップダウンメニューから、RolloutManager カスタムリソース (CR) を作成および設定するプロジェクトを作成または選択します。
  4. インストールされているオペレーターから OpenShift GitOps Operator を選択します。
  5. Details タブの Provided APIs セクションで、RolloutManager ペインの Create instance をクリックします。
  6. Create RolloutManager ページで YAML view を選択し、デフォルトの YAML を使用するか、要件に応じて編集します。

    例: RolloutManager CR

    apiVersion: argoproj.io/v1alpha1
    kind: RolloutManager
    metadata:
      name: argo-rollout
      labels:
        example: basic
    spec: {}

  7. Create をクリックします。
  8. RolloutManager タブの RolloutManagers セクションで、RolloutManager インスタンスの Status フィールドに Phase: Available と表示されていることを確認します。
  9. 左側のナビゲーションペインで、namespace をスコープとしたサポートリソースの作成を確認します。

    • WorkloadsDeployments をクリックして、argo-rollouts デプロイメントが使用可能で、Status1 of 1 pods が実行中と表示されていることを確認します。
    • WorkloadsSecrets をクリックして、argo-rollouts-notification-secret シークレットが使用可能であることを確認します。
    • NetworkingServices をクリックして、argo-rollouts-metrics サービスが利用可能であることを確認します。
    • User ManagementRoles をクリックして、argo-rollouts ロール、argo-rollouts-aggregate-to-adminargo-rollouts-aggregate-to-edit、および argo-rollouts-aggregate-to-view クラスターロールが使用可能であることを確認します。
    • User ManagementRoleBindings をクリックして、argo-rollouts ロールバインディングが使用可能であることを確認します。

1.5. RolloutManager カスタムリソースの削除

Red Hat OpenShift GitOps Operator をアンインストールしても、インストール中に作成されたリソースは削除されません。Red Hat OpenShift GitOps Operator をアンインストールする前に、RolloutManager カスタムリソース (CR) を手動で削除する必要があります。

前提条件

  • Red Hat OpenShift GitOps 1.9.0 以降のバージョンがクラスターにインストールされている。
  • RolloutManager CR は namespace に存在します。

手順

  1. クラスター管理者として OpenShift Container Platform Web コンソールにログインします。
  2. Administrator パースペクティブで、OperatorsInstalled Operators をクリックします。
  3. Project ドロップダウンメニューをクリックし、RolloutManager CR を含むプロジェクトを選択します。
  4. インストールされているオペレーターから OpenShift GitOps Operator を選択します。
  5. RolloutManager タブをクリックして、RolloutManagers セクションで RolloutManager インスタンスを見つけます。
  6. インスタンスをクリックします。
  7. ドロップダウンメニューから ActionsDelete RolloutManager をクリックし、ダイアログボックスで Delete をクリックして確認します。
  8. RolloutManager タブの RolloutManagers セクションで、RolloutManager インスタンスが使用できないことを確認します。
  9. 左側のナビゲーションペインで、namespace をスコープとするサポートリソースが削除されていることを確認します。

    • WorkloadsDeployments をクリックして、argo-rollouts デプロイメントが削除されていることを確認します。
    • WorkloadsSecrets をクリックして、argo-rollouts-notification-secret シークレットが削除されていることを確認します。
    • NetworkingServices をクリックして、argo-rollouts-metrics サービスが削除されていることを確認します。
    • User ManagementRoles をクリックして、argo-rollouts ロール、argo-rollouts-aggregate-to-adminargo-rollouts-aggregate-to-edit、および argo-rollouts-aggregate-to-view クラスターロールが削除されていることを確認します。
    • User ManagementRoleBindings をクリックして、argo-rollouts ロールバインディングが削除されていることを確認します。

1.6. 関連情報

法律上の通知

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.