第8章 Argo Rollouts の高可用性サポートの有効化


Argo Rollouts サポートは、RolloutManager カスタムリソース (CR) で高可用性 (HA) の有効化をサポートします。Argo Rollouts で高可用性を設定すると、Red Hat OpenShift GitOps Operator は RolloutManager CR の .spec.ha フィールドを使用して、Argo Rollouts コントローラーの Pod 数を 2 に自動的に設定します。また、リーダーエレクションもアクティベートし、Pod をアクティブ/パッシブプロセスで実行できます。単一 Pod はロールアウトをアクティブに管理しますが、他の Pod はパッシブ状態のままとなり、ノードに障害が発生した場合には追加のレプリカで冗長性および可用性が提供されます。

この機能は、ダウンタイムや手動介入なしで実行できるようにすることで、Rollouts コントローラーにメリットをもたらします。また、2 つ目のレプリカによりコントローラーがスムーズに実行されることが確保されるため、計画されたメンテナンス中でも動作します。Argo Rollouts で高可用性を有効にすると、ノードの障害や負荷が大きい場合でも、コントローラーが信頼性と回復力を維持できます。

Red Hat OpenShift GitOps Operator は、デフォルトで非アフィニティールールが適用されるようにします。これらのルールはユーザー定義ではありませんが、コントローラー Pod が複数の異なるノードに分散して、単一障害点を回避し、ノード障害に対する耐障害性を提供します。

前提条件

  • 管理者として OpenShift Container Platform クラスターにログインしている。
  • OpenShift Container Platform クラスターに Red Hat OpenShift GitOps がインストールされている。
  • OpenShift Container Platform クラスターに Argo Rollouts がインストールされている。

8.1. Argo Rollouts の高可用性の設定

高可用性を有効にするには、次の手順を実行して、RolloutManager カスタムリソース (CR) で ha 仕様を設定します。

手順

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

    RolloutManager CR で ha フィールドを有効にする例

    apiVersion: argoproj.io/v1alpha1
    kind: RolloutManager
    metadata:
      name: argo-rollouts
      namespace: openshift-gitops
    spec:
      ha:
        enabled: true 1

    1
    高可用性が有効であるかどうかを指定します。値が true に設定されている場合、高可用性が有効化されています。
  7. Create をクリックします。
  8. RolloutManager タブの RolloutManagers セクションで、RolloutManager インスタンスの Status フィールドに Phase: Available が表示されていることを確認します。
  9. 次の手順を実行して、Rollouts デプロイメントのステータスを確認します。

    1. Administrator パースペクティブで、Workloads Deployments をクリックします。
    2. argo-rollouts デプロイメントをクリックします。
    3. Details タブをクリックし、Rollouts デプロイメント内のレプリカの数が 2 に設定されていることを確認します。
    4. YAML タブをクリックして、以下の設定が表示されていることを確認します。

      Argo Rollouts デプロイメント設定ファイルの例

      kind: Deployment
      metadata:
        name: argo-rollouts
        namespace: openshift-gitops
      spec:
        replicas: 2 1
        selector:
          matchLabels:
            app.kubernetes.io/name: argo-rollouts
        template:
          metadata:
            creationTimestamp: null
            labels:
              app.kubernetes.io/name: argo-rollouts
          spec:
            containers:
                args:
                  - '--leader-elect'
                  - 'true' 2

      1
      Pod の数を指定します。
      2
      --leader-elect=true フラグが Rollouts デプロイメントに渡されることを指定します。このフラグはデフォルトで true に設定されていますが、明示的に設定すると、リーダーエレクションが一貫して実施されるようにします。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.