Config Sync をフリートのデフォルトとしてインストールすると、フリートに新しく追加されたすべてのクラスタで Config Sync が自動的に有効になり、必要な設定が適用されます。フリートレベルのデフォルトを設定することで、フリートに新しく登録されたすべての GKE on Google Cloud クラスタが標準の Config Sync 設定(バージョンや信頼できる情報源への接続など)を継承します。このプロセスにより、クラスタのプロビジョニングが簡素化され、構成管理の均一なベースラインを維持できます。
このページでは、次のことを説明します。
- Google Cloud CLI、 Google Cloud コンソール、または Terraform を使用して、フリートレベルのデフォルト設定を構成する方法。
- 既存のクラスタにデフォルト設定を適用する方法。
- フリートのデフォルト構成を必要に応じて無効にする方法。
フリートのデフォルト構成に関する一般的な情報については、フリートレベルの機能を管理するをご覧ください。
始める前に
Config Sync をインストールする前に、信頼できる情報源と適切なクラスタを準備します。
Config Sync に信頼できる情報源へのアクセス権を付与する
信頼できる情報源からクラスタに構成を同期するには、Config Sync にリポジトリに対する読み取り専用権限が必要です。Config Sync が構成を読み取れるように承認するには、次の操作を行います。
Config Sync がクラスタに同期する構成ファイルを含む信頼できる情報源を作成するか、該当する情報源へのアクセス権を取得します。詳しくは、次のリソースをご覧ください。
- 信頼できる情報源に構成を追加する: 構成に関するコンセプト情報。
- GitOps のベスト プラクティス: リポジトリの整理と管理に関するヒントと一般的なベスト プラクティス。
- 非構造化リポジトリを使用する: 非構造化リポジトリの使用と整理に関する推奨事項。
信頼できる情報源が公開されている場合は、追加の操作は必要ありません。Config Sync には追加の権限は必要ありません。
信頼できるソースが非公開の場合は、次のいずれかのページの手順に沿って操作します。
クラスタ要件を確認する
クラスタを作成する前に、クラスタの要件を確認してください。
制限事項
- Helm をソースタイプとして構成することは、フリートのデフォルトとしてサポートされていません。
- Google Cloud コンソールでは、信頼できる情報源への接続はデフォルト設定としてサポートされていません。代わりに、クラスタの作成後にパッケージのデプロイ機能を使用する必要があります。
Git リポジトリに関するフリートレベルのデフォルトを構成する
Config Sync のフリートレベルのデフォルトを構成する手順は次のとおりです。
gcloud
次の内容のマニフェストを
apply-spec.yamlという名前で作成します。すでにマニフェストがある場合、新しいマニフェストを作成する必要はありません。applySpecVersion: 1 spec: configSync: enabled: true sourceType: git sourceFormat: unstructured syncRepo: REPO syncRev: REVISION secretType: SECRET_TYPE # only required if gcpserviceaccount is the secretType # gcpServiceAccountEmail: EMAIL metricsGcpServiceAccountEmail: METRICS_EMAIL preventDrift: false次のように置き換えます。
REPO: Git リポジトリの URL(例:https://github.com/GoogleCloudPlatform/anthos-config-management-samples)。URL の形式は、sourceType がsshの場合は SSH 形式とし、それ以外の場合は HTTPS 形式とします。REVISION: 同期元となる Git リビジョン(タグまたはハッシュ)またはブランチ名。ハッシュを使用する場合は、省略形ではなく完全なハッシュにする必要があります。SECRET_TYPE: Git リポジトリへの接続に使用される認証方法。公開リポジトリの場合は、noneを使用します。非公開リポジトリの場合は、次のいずれかを使用します。ssh: SSH 認証鍵ペアを使用します。cookiefile:cookiefileを使用します。token: トークンを使用します。gcpserviceaccount: Workload Identity Federation for GKE が有効になっている場合は、Google サービス アカウントを使用します。Secure Source Manager または Cloud Source Repositories のみ。gcenode: Workload Identity Federation for GKE が有効になっていない場合は、Google サービス アカウントを使用します。Secure Source Manager または Cloud Source Repositories のみ。githubapp: GitHub アプリを使用して GitHub リポジトリへの認証を行います。
Git リポジトリを Config Sync に接続する方法については、Config Sync に Git へのアクセス権を付与するをご覧ください。
EMAIL:secretTypeがgcpserviceaccountの場合は、このフィールドのコメントを解除し、Google サービス アカウントのメールアドレス(例:config-sync@PROJECT_ID.iam.gserviceaccount.com)を追加します。METRICS_EMAIL: Config Sync の指標を Cloud Monitoring にエクスポートする際に使用される Google Cloudサービス アカウント(GSA)のメールアドレス。指標のエクスポートのセットアップについては、Config Sync をモニタリングするをご覧ください。
apply-specマニフェストに追加できるフィールドの全一覧については、gcloud apply spec フィールドをご覧ください。次のコマンドを実行して、デフォルトのフリート設定を含む
apply-specファイルを適用します。gcloud beta container fleet config-management enable \ --fleet-default-member-config=apply-spec.yaml
コンソール
Google Cloud コンソールで、[機能マネージャー] ページに移動します。
[Config Sync] ペインで、[構成] をクリックします。
フリートレベルの設定を確認します。フリートに新しく作成したクラスタはすべて、これらの設定を継承します。
省略可: デフォルト設定を変更するには、[フリートの設定をカスタマイズ] をクリックします。表示されるダイアログで、次の操作を行います。
- 使用する Config Sync のバージョンを選択します。
- [変更を保存] をクリックします。
[構成] をクリックします。
[フリートの設定を構成] 確認ダイアログで、[確認] をクリックします。まだ Config Sync を有効にしていない場合は、[確認] をクリックすると
anthosconfigmanagement.googleapis.comAPI も有効になります。
Google Cloud コンソールから信頼できる情報源の設定をフリートのデフォルトとして構成することはできませんが、パッケージのデプロイ機能を使用するときに複数のクラスタを選択できます。
Terraform
Config Sync をフリートのデフォルトとして有効にするには、次の例をご覧ください。
次のように置き換えます。
REPO: 構成ファイルを含む Git リポジトリの URL。BRANCH: リポジトリ ブランチ。例:mainDIRECTORY: 同期するリポジトリの最上位レベルを表す Git リポジトリ内のパス。SECRET: Secret 認証タイプ。
Terraform の使用に関する詳細については、Terraform を使用して Config Sync リソースをプロビジョニングするをご覧ください。
OCI イメージに関するフリートレベルのデフォルトを構成する
Config Sync のフリートレベルのデフォルトを構成する手順は次のとおりです。
gcloud
次の内容のマニフェストを
apply-spec.yamlという名前で作成します。すでにマニフェストがある場合、新しいマニフェストを作成する必要はありません。applySpecVersion: 1 spec: configSync: enabled: true sourceType: oci sourceFormat: unstructured syncRepo: REPO secretType: SECRET_TYPE # only required if gcpserviceaccount is the secretType # gcpServiceAccountEmail: EMAIL metricsGcpServiceAccountEmail: METRICS_EMAIL preventDrift: false次のように置き換えます。
REPO: OCI イメージの URL。LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME形式で指定します。デフォルトでは、イメージはlatestタグから pull されますが、TAGまたはDIGESTを使用して pull することもできます。PACKAGE_NAMEでTAGまたはDIGESTを指定します。TAGで pull するには:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME:TAGDIGESTで pull するには:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME@sha256:DIGEST
SECRET_TYPE: OCI イメージへの接続に使用される認証方法。公開イメージの場合は、noneを使用します。非公開イメージの場合は、次のいずれかを使用します。gcpserviceaccount: Secure Source Manager または Cloud Source Repositories のみ。Workload Identity Federation for GKE が有効になっている場合は、Google サービス アカウントを使用します。gcenode: Secure Source Manager または Cloud Source Repositories のみ。Workload Identity Federation for GKE が有効になっていない場合は、Google サービス アカウントを使用します。
OCI イメージを Config Sync に接続する方法については、Config Sync に OCI または Helm へのアクセス権を付与するをご覧ください。
EMAIL:secretTypeがgcpserviceaccountの場合は、このフィールドのコメントを解除し、Google サービス アカウントのメールアドレス(例:config-sync@PROJECT_ID.iam.gserviceaccount.com)を追加します。METRICS_EMAIL: Config Sync の指標を Cloud Monitoring にエクスポートする際に使用される Google Cloudサービス アカウント(GSA)のメールアドレス。指標のエクスポートのセットアップについては、Config Sync をモニタリングするをご覧ください。
apply-specマニフェストに追加できるフィールドの全一覧については、gcloud apply spec フィールドをご覧ください。次のコマンドを実行して、デフォルトのフリート設定を含む
apply-specファイルを適用します。gcloud beta container fleet config-management enable \ --fleet-default-member-config=apply-spec.yaml
コンソール
Google Cloud コンソールで、[機能マネージャー] ページに移動します。
[Config Sync] ペインで、[構成] をクリックします。
フリートレベルの設定を確認します。フリートに新しく作成したクラスタはすべて、これらの設定を継承します。
省略可: デフォルト設定を変更するには、[フリートの設定をカスタマイズ] をクリックします。表示されるダイアログで、次の操作を行います。
- 使用する Config Sync のバージョンを選択します。
- [変更を保存] をクリックします。
[構成] をクリックします。
[フリートの設定を構成] 確認ダイアログで、[確認] をクリックします。まだ Config Sync を有効にしていない場合は、[確認] をクリックすると
anthosconfigmanagement.googleapis.comAPI も有効になります。
Google Cloud コンソールから信頼できる情報源の設定をフリートのデフォルトとして構成することはできませんが、パッケージのデプロイ機能を使用するときに複数のクラスタを選択できます。
Terraform
Config Sync をフリートのデフォルトとして有効にするには、次の例をご覧ください。
次のように置き換えます。
REPO: 構成ファイルを含む OCI イメージ リポジトリの URL。DIRECTORY: 同期するリソースを含むディレクトリの絶対パス。ルート ディレクトリを使用する場合は、このフィールドを空白のままにします。SECRET: Secret 認証タイプ。
Terraform の使用に関する詳細については、Terraform を使用して Config Sync リソースをプロビジョニングするをご覧ください。
既存のクラスタを更新してフリートのデフォルトを継承する
既存のクラスタを更新してデフォルトの Config Sync 設定を使用するには、 Google Cloud コンソールまたは gcloud CLI を使用して、選択したフリート クラスタをフリートのデフォルトに同期します。または、前のセクションの Terraform を使用した Config Sync のインストール手順に沿って、各クラスタを手動で同じ設定に構成することもできます。以前に Terraform を使用してフリートのデフォルトを指定した場合は、デフォルトの設定に使用したものと同じ configmanagement と config_sync ブロックを使用して、選択したクラスタを構成します。
Config Sync のデフォルト設定をフリート全体で同期する手順は次のとおりです。
gcloud
既存のメンバーシップをフリートのデフォルト構成に同期します。
gcloud beta container fleet config-management apply \ --origin=FLEET \ --membership=MEMBERSHIP_NAMEMEMBERSHIP_NAMEは、フリートのデフォルト構成と同期するクラスタのメンバーシップ名に置き換えます。メンバーシップの構成がフリートのデフォルトと同期されていることを確認します。
gcloud beta container fleet config-management statusこのコマンドの出力で、同期したメンバーシップの
Synced_to_Fleet_DefaultステータスがYesと表示されていれば、同期は成功しています。
コンソール
機能マネージャーに移動します。
クラスタの表で、フリートの設定に同期するクラスタを選択します。
[フリートの設定に同期] をクリックします。
フリートのデフォルトを無効にする
Config Sync のデフォルト設定をフリート全体で無効にする手順は次のとおりです。
フリートのデフォルト構成を無効にするには、次のコマンドを実行します。
gcloud beta container fleet config-management disable --fleet-default-member-configフリートのデフォルト構成が無効になっていることを確認します。
gcloud beta container fleet config-management status
次のステップ
- Config Sync をアップグレードする方法を確認する。
- 複数のリポジトリからの同期を構成する方法を確認する。
nomosコマンドを使用する。- デフォルトの Config Sync 権限を確認する。