マネージド コントロール プレーンのモダナイゼーション

概要

Google は、ISTIOD マネージド コントロール プレーン実装を使用している既存のフリートを段階的に更新し、TRAFFIC_DIRECTOR 実装を使用するようにします。フリートはデフォルトで自動的に移行されますが、ご自身で移行することもできます。フリートが使用しているコントロール プレーンを確認するには、コントロール プレーンの実装を確認するをご覧ください。

フリートのモダナイズを準備する際は、次の点を考慮してください。

  1. モダナイゼーションの準備には、次の 2 つの方法があります。

  2. デフォルトは Google 主導のモダナイゼーションです。このオプションでは、Google がフリートのモダナイゼーションのタイミングを判断します。Google はフリートのモダナイゼーションをスケジュールし、プロセスを開始する前に通知します。

  3. クラスタをモダナイズすると、プロキシがあるワークロードが再起動されます。Kubernetes のベスト プラクティスに沿っていれば、ダウンタイムは発生しません。また、メンテナンスの時間枠が構成されている場合は、その時間枠中にモダナイゼーションがトリガーされます。開始されると終了まで実行され、さらに 6 日間のソーク時間が経過してから完了とマークされます。モニタリングで問題が検出された場合は、ロールバックをリクエストできます。

  4. お客様主導のモダナイゼーションでは、フリートがモダナイズできる状態になると通知が届きます。その後、クラスタごとにモダナイゼーションをトリガーするタイミングを選択できます。完了したら、各フリートのモダナイゼーションを完了としてマークします。

  5. フリートがモダナイズされると、Istiod ベースのコンポーネントがすべて削除されます。

  6. TRAFFIC_DIRECTOR コントロール プレーンの実装では、クラスタがメッシュ機能が有効になっているフリートに登録されている必要があります。以前のツールを使用してオンボーディングした場合、Google は gkehub.googleapis.com Membership API を使用して、クラスタをプロジェクトのフリートに自動的に登録します。クラスタの登録解除を自動化している場合は、モダナイゼーション前に削除する必要があります。

Google 主導のモダナイゼーション

フリートにラベルを付けてお客様主導のモダナイゼーションを行わない場合、このオプションがデフォルトです。Google はフリートをモニタリングし、安全にモダナイズできるタイミングを判断します。組織内のすべてのメッシュ対応フリートが準備できたら、組織に対してモダナイゼーションがスケジュールされます。

複数のフリート

組織にマネージド Cloud Service Mesh を使用する複数のフリートがある場合は、mesh-modernization-order のプロジェクト ラベルを earlydefaultlate のいずれかに設定することで、Google がフリートをモダナイズする順序を制御できます。Google は、1 つのグループのモダナイゼーションを完了してから、次のグループのフリートのモダナイゼーションを開始します。お客様主導のモダナイゼーションを選択したフリートは、この順序付けでは考慮されません。

次のコマンドを使用して、フリートの mesh-modernization-order ラベルを設定します。

gcloud alpha projects update FLEET_PROJECT_ID --update-labels="mesh-modernization-order=VALUE"

コンソールまたは REST を使用してプロジェクト ラベルを設定する手順については、ラベルを作成および更新するのドキュメントをご覧ください。

Google Cloud 組織を使用しない場合は、フリートは個別にスケジュール設定され、モダナイズされます。順序を制御することはできません。

マルチクラスタ メッシュ

フリートにマネージド Cloud Service Mesh を使用するクラスタが複数ある場合は、mesh-modernization-order のクラスタラベルを earlydefaultlate のいずれかに設定することで、Google がクラスタをモダナイズする順序を制御できます。Google は 1 つのグループのモダナイゼーションを開始し、自動モダナイゼーションが完了するのを待ってから、次のグループのクラスタのモダナイゼーションを開始します。この順序付けはフリート内でのみ適用され、並行してモダナイゼーションが行われている組織内の他のフリートには影響しません。

次のコマンドを使用して、クラスタの mesh-modernization-order ラベルを設定します。

gcloud container clusters update CLUSTER_NAME \
  --location LOCATION \
  --update-labels="mesh-modernization-order=VALUE"

通知とスケジュール

このセクションでは、フリートとクラスタの近々予定されているモダナイゼーションがどのように通知されるかについて説明します。

近い将来にモダナイゼーションがスケジュールされる旨の通知

まず、Google 主導のモダナイゼーションの対象としてお客様のフリートが選ばれた場合、近い将来にモダナイゼーションが実行される旨の通知が届きます。

この通知は、米国の 1 か月の最初の営業日より前に送信されます。クラスタのモダナイゼーションの開始日は、米国の 1 か月の最初の営業日から 14 日目以降となります。Google は、組織の最初のクラスタ モダナイゼーションを翌月の末日までに開始できるよう最善を尽くします。たとえば、2025 年 4 月 1 日より前に通知が届いた場合、クラスタのモダナイゼーションは 2025 年 4 月 15 日から開始される可能性があります。また、最初のクラスタのモダナイゼーションは 2025 年 5 月 31 日までに開始されると想定されます。

組織内の各フリート(お客様主導のモダナイゼーションを選択したフリートは除く)について同時に通知が届きます。

この通知は、フリートレベルの機能の状態の条件で使用できます。次の Google Cloud CLI コマンドを使用して通知を確認します。

gcloud alpha container fleet mesh describe --project $FLEET_PROJ

フリートがスケジュールされると、次のような code: MODERNIZATION_WILL_BE_SCHEDULEDdetails を含む条件が表示されます。

state:
  servicemesh:
    conditions:
      - code: MODERNIZATION_WILL_BE_SCHEDULED
        details: We will soon schedule clusters in this fleet to be modernized to use the TRAFFIC_DIRECTOR
          control plane implementation. Please confirm your fleet and cluster preferences prior to
          scheduling. Cluster modernization dates will be on or after 2025-03-17.
        documentation_link: ...
        severity: INFO

モダナイゼーションがスケジュールされている旨のクラスタレベルの通知

クラスタのモダナイゼーションが開始される少なくとも 1 日前に、Google 主導によるクラスタのモダナイゼーションの開始予定日がクラスタレベルで通知されます。

フリートレベルの通知に続いて、個々のクラスタのモダナイゼーションのタイミングをより正確に把握できます。

通知は、クラスタレベルの機能の状態の条件で使用できます。次の Google Cloud CLI コマンドを使用して通知を確認します。

gcloud container hub mesh describe --project=PROJECT_ID

次のような結果が表示されます。

membershipStates:
  projects/656460026795/locations/us-central1/memberships/cluster:
    servicemesh:
      conditions:
      - code: MODERNIZATION_SCHEDULED
        details: This cluster has been scheduled for modernization on or after 2025-03-17.
        documentationLink: ...
        severity: INFO

Google 主導の移行のためのアクティブなモダナイゼーション

このセクションでは、Google 主導のモダナイゼーションの手順について説明します。

フリートのモダナイゼーション

Google は、組織の各フリートのアクティブなモダナイゼーションをトリガーします。フリートごとに次の手順が実行されます。

  1. mesh-modernization-orderearly のすべてのクラスタをモダナイズします。
  2. mesh-modernization-orderdefault または未指定のすべてのクラスタをモダナイズします。
  3. mesh-modernization-orderlate のすべてのクラスタをモダナイズします。
  4. 各クラスタのモダナイゼーションが完了とマークされるまで待ちます。つまり、そのフリート内のいずれかのクラスタで最後の Pod を再起動してから 6 営業日以上待つ必要があります。
  5. フリートのモダナイゼーションを完了し、最後に Istiod ベースのコンポーネントを削除します。

クラスタのモダナイゼーション

クラスタのアクティブなモダナイゼーション中は、両方のコントロール プレーン実装が一時的に並行して実行され、安全かつ制御された方法で次のタスクが処理されます。

  1. 新しいコントロール プレーン実装を有効にします。クラスタにメンテナンスの時間枠を構成していて、Google 主導のモダナイゼーションを行っている場合、このステップはメンテナンスの時間枠中に開始され、完了するまで続行されます。
  2. トラフィックを新しいコントロール プレーン実装に移行します。クラスタにメンテナンスの時間枠を構成していて、Google 主導のモダナイゼーションを行っている場合、このステップはメンテナンスの時間枠中に開始され、完了するまで続行されます。
    • Cloud Service Mesh プロキシがある Kubernetes Deployment によって管理されている Pod が再起動され、新しいコントロール プレーンに再接続します。
    • Pod は、モニタリングのために各ウェーブの後にソーク時間を設定して、徐々に大きなウェーブで再起動されます。
  3. クラスタのモダナイゼーションが完了とマークされるまで、少なくとも 6 営業日のソーク時間が経過する必要があります。

次の Google Cloud CLI コマンドを使用して、進行中のモダナイゼーションのステータスを確認します。

gcloud container fleet mesh describe --project FLEET_PROJECT_ID

クラスタごとの membershipStates フィールドに、次のいずれかのような条件が表示されます。

...
membershipStates:
  projects/FLEET_PROJ/locations/us-central1/memberships/MEMBERSHIP:
    servicemesh:
      conditions:
      - code: MODERNIZATION_IN_PROGRESS
        details: ...
        documentationLink: ...
        severity: INFO
...
      # If you see this, see instructions provided in the details and documentationLink fields.
      - code: MODERNIZATION_ACTION_REQUIRED
        details: [details about required actions]
        documentationLink: [link to documentation for required actions]
        severity: WARNING
...
      - code: MODERNIZATION_COMPLETED
        details: ...
        documentationLink: ...
        severity: INFO

お客様主導のモダナイゼーション

モダナイゼーションの正確なタイミングをフリートレベルで自分で制御することもできます。これを行うには、次のコマンドを使用してフリート ホスト プロジェクトにラベルを適用します。

gcloud alpha projects update FLEET_PROJECT_ID \
  --update-labels="mesh-modernization-mode=manual"

Google Cloud 組織に複数のフリートがある場合、ラベルが付けられていないフリートはすべて、Google 主導のモダナイゼーションのスケジュールが設定されます。

フリートがモダナイゼーションの対象になると、フリートレベルの機能のステータスに通知が表示されます。この通知を受け取ってから 3 か月以内にモダナイゼーションをトリガーする必要があります。

このドキュメントは、モダナイゼーションを手動でトリガーする方法についても詳しく説明するように更新される予定です。通知を受け取るには、Cloud Service Mesh リリースノート フィードにご登録ください。