このページでは、Config Sync で使用するクラスタを計画する際の構成の選択肢と要件について説明します。
GKE クラスタを計画する際の一般的なベスト プラクティスの詳細については、GKE ドキュメントのクラスタ構成の選択肢をご覧ください。
Autopilot モードのリソース要件
GKE Autopilot モードでは、ワークロードの安定性を維持するためにリソース リクエストが自動的に変更されます。これらのリクエストを計画する方法については、Autopilot のリソース リクエストに関する GKE のドキュメントをご覧ください。
Autopilot がリソース リクエストを変更する方法に基づいて、Config Sync は次の調整を行います。
- ユーザー指定のリソース オーバーライド上限をリクエストに合わせて調整します。
- オーバーライドは、アノテーションで宣言された対応する調整済みの出力よりも高いリソース リクエストが 1 つ以上存在している場合、またはアノテーションで宣言された対応する入力よりも少ないリソース リクエストが存在している場合にのみ適用されます。
サポートされている 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 が信頼できる情報源にアクセスしてこの情報源に対する認証を行うことができるようにする必要があります。
限定公開 GKE ノードからの下り(外向き)トラフィックが許可されるように Cloud NAT を構成します。詳細については、GKE の設定例をご覧ください。
限定公開の Google アクセスを有効にして、Google API とサービスで使用される一連の外部 IP アドレスに接続します。
一般公開クラスタ
一般公開クラスタを使用しているにもかかわらず、不要なトラフィックをブロックする厳格な 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 のないワークロードがそこでスケジュールされないようにします。追加の対応は必要ありません。