マネージド コントロール プレーンのモダナイゼーション
Google は、ISTIOD
マネージド コントロール プレーン実装を使用している既存のフリートに対して、段階的に更新を実施し、TRAFFIC_DIRECTOR
実装を使用するようにします。デフォルトでは、フリートは自動的に移行されますが、ご自身で移行することもできます。フリートで使用されているコントロール プレーンを確認するには、コントロール プレーンの実装を確認するをご覧ください。
モダナイゼーションに向けてフリートを準備する際は、次の点を考慮してください。
モダナイゼーションの準備には、次の 2 つの方法があります。
Google 主導の自動移行(デフォルト)- Google 主導のモダナイゼーションの手順に沿って、クラスタのモダナイゼーションの順序をカスタマイズできます。
お客様主導の移行(省略可)- お客様主導のモダナイゼーションの手順に沿ってラベル付けすることで、フリートのモダナイゼーションをご自身で進めることができます。
デフォルトは Google 主導のモダナイゼーションです。このオプションを使用すると、Google がフリートのモダナイゼーションの準備が整ったタイミングを判断します。Google はフリートのモダナイゼーションをスケジュールし、プロセスを開始する前に通知します。
クラスタをモダナイズすると、プロキシがあるワークロードが再起動されます。Kubernetes のベスト プラクティスに沿っていれば、ダウンタイムは発生しません。また、メンテナンスの時間枠が構成されている場合は、その時間枠中にモダナイゼーションがトリガーされます。開始すると、完了まで実行され、さらに 6 日間のソーク期間が経過してから、確定済みとしてマークされます。モニタリングで問題が検出された場合は、ロールバックをリクエストできます。
お客様主導のモダナイゼーションでは、フリートがモダナイゼーションの準備が整うと通知されます。その後、クラスタごとにモダナイゼーションをトリガーするタイミングを選択できます。完了したら、各フリートのモダナイゼーションを完了としてマークします。
フリートがモダナイズされると、Istiod ベースのコンポーネントがすべて削除されます。
TRAFFIC_DIRECTOR
コントロール プレーンの実装では、クラスタがメッシュ機能が有効になっているフリートに登録されている必要があります。以前のツールを使用してオンボーディングした場合、gkehub.googleapis.com
Membership API を使用して、クラスタがプロジェクトのフリートに対して自動的に登録されます。クラスタの登録解除を自動化する場合は、モダナイゼーション前に削除する必要があります。
Google 主導のモダナイゼーション
このオプションは、お客様主導のモダナイゼーションのためにフリートにラベルを付けない場合のデフォルトです。Google はフリートをモニタリングし、安全にモダナイズできるタイミングを判断します。組織内のすべてのメッシュ対応フリートが準備が整うと、組織のモダナイゼーションがスケジュールされます。
複数のフリート
組織にマネージド Cloud Service Mesh を使用する複数のフリートがある場合は、mesh-modernization-order
のプロジェクトラベルを early
、default
、late
のいずれかに設定することで、Google がフリートをモダナイズする順序を制御できます。Google は、各グループのモダナイゼーションを完了してから、次のグループのフリートへのモダナイゼーションを開始します。お客様主導のモダナイゼーションを選択したフリートは、この順序付けでは考慮されません。
次のコマンドを使用して、フリートの mesh-modernization-order
ラベルを設定します。
gcloud alpha projects update FLEET_PROJECT_ID --update-labels="mesh-modernization-order=VALUE"
Console または REST を使用してプロジェクトラベルを設定する手順については、ラベルの作成と管理のドキュメントをご覧ください。
Google Cloud 組織を使用しない場合は、フリートは個別にスケジュール設定され、モダナイズされます。順序を制御することはできません。
マルチクラスタ メッシュ
フリートにマネージド Cloud Service Mesh を使用するクラスタが複数ある場合は、mesh-modernization-order
のクラスタラベルを early
、default
、late
のいずれかに設定することで、Google がクラスタをモダナイズする順序を制御できます。Google は各グループのモダナイゼーションを開始し、自動モダナイゼーション ステップが完了するのを待ってから、次のグループのクラスタのモダナイゼーションを開始します。この順序付けはフリート内でのみ適用され、並行してモダナイズされている組織内の他のフリートには影響しません。
次のコマンドを使用して、クラスタの mesh-modernization-order
ラベルを設定します。
gcloud container clusters update CLUSTER_NAME \ --location LOCATION \ --update-labels="mesh-modernization-order=VALUE"
お客様主導のモダナイゼーション
モダナイゼーションの正確なタイミングをフリートレベルで自分で制御することもできます。これを行うには、次のコマンドを使用してフリート ホスト プロジェクトにラベルを適用します。
gcloud alpha projects update FLEET_PROJECT_ID \ --update-labels="mesh-modernization-mode=manual"
Google Cloud 組織に複数のフリートがある場合、ラベルが付けられていないフリートはすべて、Google 主導のモダナイゼーションのスケジュールが設定されます。
フリートがモダナイゼーションの対象になると、フリートレベルの機能のステータスに通知が表示されます。この通知を受け取ってから 3 か月以内にモダナイゼーションをトリガーする必要があります。
このドキュメントは、モダナイゼーションを手動でトリガーする方法の詳細を含めるように更新される予定です。Cloud Service Mesh リリースノート フィードを定期購読して通知を受け取る。
Google 主導の移行のためのアクティブなモダナイゼーション
このセクションでは、Google 主導のモダナイゼーションの手順について説明します。
フリートのモダナイゼーション
Google は、組織の各フリートの積極的なモダナイゼーションをトリガーします。つまり、フリートごとに次の手順が実行されます。
early
のmesh-modernization-order
を使用して、すべてのクラスタをモダナイズします。mesh-modernization-order
がdefault
または未指定のすべてのクラスタをモダナイズします。late
のmesh-modernization-order
を使用して、すべてのクラスタをモダナイズします。- 各クラスタのモダナイゼーションが確定済みとしてマークされるまで待ちます。つまり、このフリート内のいずれかのクラスタで最後の Pod を再起動してから 6 営業日以上待つ必要があります。
- このフリートのモダナイゼーションを完了し、最終的には Istiod ベースのコンポーネントを削除します。
クラスタのモダナイゼーション
クラスタのアクティブなモダナイゼーション中は、両方のコントロール プレーン実装が一時的に並行して実行され、安全かつ制御された方法で次のタスクが処理されます。
- 新しいコントロール プレーンの実装を有効にします。クラスタにメンテナンスの時間枠を構成し、Google 主導のモダナイゼーションを使用している場合、このステップはメンテナンスの時間枠中に開始され、完了するまで続行されます。
- ヘルスチェックを有効にするには、クラスタの
kube-system
名前空間にsnk
DaemonSet が作成され、クラスタごとにファイアウォール ルールが作成されます。- ネットワーク エンドポイント グループ(NEG)の取り込みを有効にするには、すべての Kubernetes サービスにアノテーション
cloud.google.com/neg
を追加します。 - メッシュ、ルート、バックエンド サービス、ヘルスチェックなどの新しい Google Cloud リソースがクラスタに作成されます。
- 新しいリソースの一部は割り当てが制限されています。割り当てを確認し、必要に応じて追加をリクエストできます。
- 次のステップに進む前に、ソーク時間中にクラスタがモニタリングされます。
- ネットワーク エンドポイント グループ(NEG)の取り込みを有効にするには、すべての Kubernetes サービスにアノテーション
- ヘルスチェックを有効にするには、クラスタの
- トラフィックを新しいコントロール プレーン実装に移行します。クラスタにメンテナンスの時間枠を構成し、Google 主導のモダナイゼーションを使用している場合、このステップはメンテナンスの時間枠中に開始され、完了するまで続行されます。
- Cloud Service Mesh プロキシがある Kubernetes Deployment によって管理されている Pod が再起動され、新しいコントロール プレーンに再接続します。
- Pod は、モニタリングのために各ウェーブの後にソーク時間を設定して、段階的に大きなウェーブで再起動されます。
- クラスタのモダナイゼーションが完了とマークされるまで、少なくとも 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
スケジュールと通知
クラスタの更新がスケジュールされている場合は、少なくとも 2 週間前に通知が届きます。通知は、クラスタレベル機能の状態の条件で使用できます。
次の Google Cloud CLI コマンドを使用して通知を確認します。
gcloud container fleet mesh describe --project=FLEET_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 (date ~ at least 2 weeks). documentationLink:severity: INFO