Config Sync 用にクラスタを準備する

このページでは、Config Sync で使用するクラスタを計画する際の構成の選択肢と要件について説明します。

GKE クラスタを計画する際の一般的なベスト プラクティスの詳細については、GKE ドキュメントのクラスタ構成の選択肢をご覧ください。

Autopilot モードのリソース要件

GKE Autopilot モードでは、ワークロードの安定性を維持するためにリソース リクエストが自動的に変更されます。これらのリクエストを計画する方法については、Autopilot のリソース リクエストに関する GKE のドキュメントをご覧ください。

Autopilot がリソース リクエストを変更する方法に基づいて、Config Sync は次の調整を行います。

サポートされている GKE Enterprise のプラットフォームとバージョン

Config Sync を使用するには、クラスタが GKE Enterprise のサポートされているプラットフォームとバージョン上にある必要があります。

Workload Identity Federation for GKE

Google Cloud サービスに安全に接続するには、Workload Identity Federation for GKE を使用することをおすすめします。Workload Identity Federation for GKE は、Autopilot クラスタではデフォルトで有効になっています。

Config Sync でフリート パッケージプレビュー)を使用する場合は、Workload Identity Federation for GKE が必要です。

GKE リリース チャンネル

Config Sync でアップグレードを自動的に管理する場合は、クラスタを GKE リリース チャンネルに登録することをおすすめします。Config Sync の自動アップグレードは、リリース チャンネルを使用して、新しいバージョンにアップグレードするタイミングを決定します。

リリース チャンネルに登録せずに自動アップグレードを有効にすると、Config Sync は、クラスタが Stable リリース チャンネルを使用している場合と同様に、そのクラスタのアップグレードを管理します。

ネットワーキング

次のセクションでは、ネットワーキング設定に応じて GKE クラスタに行う必要のある変更について説明します。

GKE ネットワーキングの選択肢の詳細については、ネットワークの概要をご覧ください。

限定公開クラスタ

限定公開クラスタを使用する場合は、次のいずれかの方法でクラスタを構成し、Config Sync が信頼できる情報源にアクセスしてこの情報源に対する認証を行うことができるようにする必要があります。

一般公開クラスタ

一般公開クラスタを使用しているにもかかわらず、不要なトラフィックをブロックする厳格な VPC ファイアウォール要件がある場合は、ファイアウォール ルールを作成して、次のトラフィックを許可する必要があります。

  • TCP: ポート 53 と 443 で上り(内向き)と下り(外向き)を許可する
  • UDP: ポート 53 で下り(外向き)を許可する

これらのルールを含めない場合、Config Sync が正しく同期されず、nomos status が次のエラーを報告します。

Error: KNV2004: unable to sync repo Error in the git-sync container

Compute Engine のデフォルトのサービス アカウント認証を使用した Cloud Source Repositories

Config Sync を使用して Cloud Source Repositories に接続していて、Workload Identity Federation for GKE が有効になっていない場合は、Compute Engine のデフォルトのサービス アカウントを使用して認証できます。クラスタ内のノードで読み取り専用スコープとアクセス スコープを使用する必要があります。

Cloud Source Repositories の読み取り専用スコープは、クラスタ作成時に指定された --scopes リストに cloud-source-repos-ro を組み込むか、クラスタの作成時に cloud-platform スコープを使用することで追加できます。次に例を示します。

gcloud container clusters create CLUSTER_NAME --scopes=cloud-platform

CLUSTER_NAME は、使用するクラスタの名前に置き換えます。

アクセス スコープは、ノードプールの作成後は変更できません。ただし、同じクラスタを使用しながら、適切なアクセス スコープを持つ新しいノードプールを作成できます。デフォルトの gke-default スコープに cloud-source-repos-ro は含まれません。

Arm ノード

Config Sync は、Arm ノードではなく x86 ベースのノードでのみ実行できます。ただし、複数のアーキテクチャを持つクラスタで Config Sync を実行する必要がある場合は、クラスタタイプに応じて次の操作を行います。

  • GKE on AWS または GKE on Azure: Arm ノードに taint を追加して、対応する toleration のない Arm ノードで Pod がスケジュールされないようにします。
  • GKE: GKE はデフォルトの taint を追加することで、対応する toleration のないワークロードがそこでスケジュールされないようにします。追加の対応は必要ありません。

次のステップ

Config Sync をインストールする