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

概要

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

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

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

  2. フリートをサポートされている機能に対して自動的に評価し、モダナイゼーションの前に潜在的なブロッカーのギャップを特定するには、Cloud Service Mesh の互換性についてのガイドをご覧ください。

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

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

  5. お客様主導のモダナイゼーションの場合: Cloud Service Mesh の互換性についてのガイドを使用して、TRAFFIC_DIRECTOR コントロール プレーンの実装との互換性を確認できます。その後、フリートのモダナイゼーションをトリガーするタイミングを選択できます。

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

  7. 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 日までに開始されると想定されます。

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

この通知は、フリートレベルの機能の状態の条件(MODERNIZATION_WILL_BE_SCHEDULED)で使用できます。条件の確認の詳細については、モダナイゼーションのステータスを確認するをご覧ください。

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

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

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

この通知は、クラスタレベルの機能の状態の条件(MODERNIZATION_SCHEDULED)で使用できます。条件の確認の詳細については、モダナイゼーションのステータスを確認するをご覧ください。

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 営業日のソーク時間が経過する必要があります。

クラスタの進行中のモダナイゼーションのステータスをモニタリングするには、モダナイゼーションのステータスを確認するをご覧ください。

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

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

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

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

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

クラスタをモダナイゼーションに備えるには、次の必須の構成に関するベスト プラクティスをご覧ください。通知を受け取るには、Cloud Service Mesh リリースノート フィードにご登録ください。

モダナイゼーションのステータスを確認する

フリートとクラスタのモダナイズのステータスをモニタリングするには、機能の状態条件を確認します。次の Google Cloud CLI コマンドを使用します。

gcloud alpha container fleet mesh describe --project FLEET_PROJECT_ID

フリートレベルの条件

フリートのステータスを確認すると、state.servicemesh.conditions に次の条件が表示されることがあります。

  • MODERNIZATION_WILL_BE_SCHEDULED: このフリート内のクラスタは、TRAFFIC_DIRECTOR コントロール プレーン実装を使用するようにまもなく最新化されます。
  • MODERNIZATION_MODERNIZING: フリート内の 1 つ以上のクラスタでモダナイゼーションが進行中です。
  • MODERNIZATION_MODERNIZED: フリート内のすべてのクラスタが正常にモダナイズされました。フリートは現在、ロールバックが可能なソーキング期間に入っています。
  • MODERNIZATION_FINALIZED: モダナイゼーションが完了し、ファイナライズされました。ロールバックはできなくなります。このフリート ステータスに達すると、クラスタは MODERNIZATION_COMPLETED のレポートを停止します。このステータスは、移行が完了してから少なくとも 30 日間は報告されます。
  • MODERNIZATION_ROLLING_BACK_FLEET: フリートレベルのロールバックが進行中です。

クラスタレベルの条件

フリート内の個々のクラスタのステータスを確認すると、membershipStates.servicemesh.conditions に次の条件が表示されることがあります。

  • MODERNIZATION_SCHEDULED: このクラスタは、条件の詳細で指定された日付以降にモダナイズされるようにスケジュールされています。
  • MODERNIZATION_PREPARING: 新しいコントロール プレーンの実装を有効にします。
  • MODERNIZATION_PREPARED: 新しいコントロール プレーン実装が有効になります。ワークロードの移行はまだ開始されていません。
  • MODERNIZATION_MIGRATING_WORKLOADS: 新しいコントロール プレーン実装を使用するようにワークロードを移行します。
  • MODERNIZATION_COMPLETED: このクラスタのモダナイゼーションが完了しました。
  • MODERNIZATION_ROLLING_BACK_CLUSTER: このクラスタでロールバックが進行中です。
  • MODERNIZATION_ABORTED: クラスタはレガシー コントロール プレーンに正常にロールバックされました。このステータスは、ロールバックの完了後 24 時間報告されます。