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 には HTTPS 形式を使用します。ssh
が sourceType の場合は、SSH 形式を使用します。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
:gcpserviceaccount
がsecretType
の場合は、このフィールドのコメントを解除し、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.com
API を有効にします。
Google Cloud コンソールから信頼できる情報源の設定をフリートのデフォルトとして構成することはできませんが、パッケージをデプロイ機能を使用するときに複数のクラスタを選択できます。
Terraform
Config Sync をフリートのデフォルトとして有効にするには、次の例をご覧ください。
次のように置き換えます。
REPO
: 構成ファイルを含む Git リポジトリの URL。BRANCH
: リポジトリ ブランチ。例:main
DIRECTORY
: 同期するリポジトリの最上位レベルを表す 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
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME
形式の OCI イメージの URL。デフォルトでは、イメージはlatest
タグから取得されますが、TAG
またはDIGEST
を使用してイメージを pull することもできます。PACKAGE_NAME
でTAG
またはDIGEST
を指定します。TAG
で pull するには:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME:TAG
DIGEST
で 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
:gcpserviceaccount
がsecretType
の場合は、このフィールドのコメントを解除し、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.com
API を有効にします。
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_NAME
MEMBERSHIP_NAME
は、フリートのデフォルト構成と同期するクラスタのメンバーシップ名に置き換えます。メンバーシップの構成がフリートのデフォルトと同期されていることを確認します。
gcloud beta container fleet config-management status
このコマンドの出力には、同期したメンバーシップの
Synced_to_Fleet_Default
ステータスがYes
と表示されます。
Console
機能マネージャーに移動します。
クラスタの表で、フリートの設定に同期するクラスタを選択します。
[フリートの設定に同期] をクリックします。
フリートのデフォルトを無効にする
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 権限を確認する。