Config Sync をフリートのデフォルトとしてインストールする

Config Sync をフリートのデフォルトとしてインストールすると、フリートに追加されたすべての新しいクラスタで、必要な設定で Config Sync が自動的に有効になります。フリートレベルのデフォルトを設定すると、フリートに登録されたすべての新しい GKE on Google Cloud クラスタが、バージョンや信頼できる情報源への接続など、標準の Config Sync 設定を継承します。このプロセスにより、クラスタのプロビジョニングが簡素化され、統一された構成管理ベースラインを維持できます。

このページでは、次のことを説明します。

  • Google Cloud CLI、 Google Cloud コンソール、または Terraform を使用して、これらのフリートレベルのデフォルト設定を構成する方法。
  • 既存のクラスタにデフォルト設定を適用する方法。
  • 必要に応じてフリートのデフォルト構成を無効にする方法。

フリートのデフォルト構成に関する一般的な情報については、フリートレベルの機能を管理するをご覧ください。

始める前に

Config Sync をインストールする前に、信頼できる情報源と適切なクラスタを準備します。

Config Sync に信頼できる情報源へのアクセス権を付与する

信頼できる情報源からクラスタに構成を同期するには、Config Sync にリポジトリに対する読み取り専用権限が必要です。Config Sync が構成を読み取れるように承認するには、次の操作を行います。

クラスタ要件を確認する

クラスタを作成する前に、クラスタの要件を確認してください。

制限事項

  • Helm をソースタイプとして構成することは、フリートのデフォルトとしてサポートされていません。
  • Google Cloud コンソールでは、信頼できる情報源への接続はデフォルト設定としてサポートされていません。代わりに、クラスタの作成後にパッケージのデプロイ機能を使用する必要があります。

Git リポジトリのフリートレベルのデフォルトを構成する

Config Sync のフリートレベルのデフォルトを構成する手順は次のとおりです。

gcloud

  1. 次の内容のマニフェストを 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: gcpserviceaccountsecretType の場合は、このフィールドのコメントを解除し、Google サービス アカウントのメールアドレス(config-sync@PROJECT_ID.iam.gserviceaccount.com など)を追加します。

    • METRICS_EMAIL: Config Sync の指標を Cloud Monitoring にエクスポートする際に使用される Google Cloudサービス アカウント(GSA)のメールアドレス。指標のエクスポートの設定の詳細については、Config Sync をモニタリングするをご覧ください。

    apply-spec マニフェストに追加できるフィールドの一覧については、gcloud apply spec フィールドをご覧ください。

  2. 次のコマンドを実行して、デフォルトのフリート設定で apply-spec ファイルを適用します。

    gcloud beta container fleet config-management enable \
        --fleet-default-member-config=apply-spec.yaml
    

コンソール

  1. Google Cloud コンソールで、[機能マネージャー] ページに移動します。

    機能マネージャーに移動

  2. [Config Sync] ペインで、[構成] をクリックします。

  3. フリートレベルの設定を確認します。フリートで作成した新しいクラスタは、これらの設定を継承します。

  4. 省略可: デフォルトの設定を変更するには、[フリートの設定をカスタマイズ] をクリックします。表示されるダイアログで、次の操作を行います。

    1. 使用する Config Sync のバージョンを選択します。
    2. [変更を保存] をクリックします。
  5. [構成] をクリックします。

  6. [フリートの設定を構成] 確認ダイアログで、[確認] をクリックします。以前に Config Sync を有効にしていない場合は、[確認] をクリックして anthosconfigmanagement.googleapis.com API を有効にします。

Google Cloud コンソールから信頼できる情報源の設定をフリートのデフォルトとして構成することはできませんが、パッケージをデプロイ機能を使用するときに複数のクラスタを選択できます。

Terraform

Config Sync をフリートのデフォルトとして有効にするには、次の例をご覧ください。

resource "google_gke_hub_feature" "default" {
  name     = "configmanagement"
  location = "global"

  fleet_default_member_config {
    configmanagement {
      config_sync {
        # The field `enabled` was introduced in Terraform version 5.41.0, and
        # needs to be set to `true` explicitly to install Config Sync.
        enabled = true
        git {
          sync_repo   = "REPO"
          sync_branch = "BRANCH"
          policy_dir  = "DIRECTORY"
          secret_type = "SECRET"
        }
      }
    }
  }
}

次のように置き換えます。

  • REPO: 構成ファイルを含む Git リポジトリの URL。
  • BRANCH: リポジトリ ブランチ。例: main
  • DIRECTORY: 同期するリポジトリの最上位レベルを表す Git リポジトリ内のパス。
  • SECRET: Secret 認証タイプ。

Terraform の使用方法の詳細については、Terraform を使用して Config Sync リソースをプロビジョニングするをご覧ください。

OCI イメージのフリートレベルのデフォルトを構成する

Config Sync のフリートレベルのデフォルトを構成する手順は次のとおりです。

gcloud

  1. 次の内容のマニフェストを 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_NAMETAG または 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: gcpserviceaccountsecretType の場合は、このフィールドのコメントを解除し、Google サービス アカウントのメールアドレス(config-sync@PROJECT_ID.iam.gserviceaccount.com など)を追加します。

    • METRICS_EMAIL: Config Sync の指標を Cloud Monitoring にエクスポートする際に使用される Google Cloudサービス アカウント(GSA)のメールアドレス。指標のエクスポートの設定の詳細については、Config Sync をモニタリングするをご覧ください。

    apply-spec マニフェストに追加できるフィールドの一覧については、gcloud apply spec フィールドをご覧ください。

  2. 次のコマンドを実行して、デフォルトのフリート設定で apply-spec ファイルを適用します。

    gcloud beta container fleet config-management enable \
        --fleet-default-member-config=apply-spec.yaml
    

コンソール

  1. Google Cloud コンソールで、[機能マネージャー] ページに移動します。

    機能マネージャーに移動

  2. [Config Sync] ペインで、[構成] をクリックします。

  3. フリートレベルの設定を確認します。フリートで作成した新しいクラスタは、これらの設定を継承します。

  4. 省略可: デフォルトの設定を変更するには、[フリートの設定をカスタマイズ] をクリックします。表示されるダイアログで、次の操作を行います。

    1. 使用する Config Sync のバージョンを選択します。
    2. [変更を保存] をクリックします。
  5. [構成] をクリックします。

  6. [フリートの設定を構成] 確認ダイアログで、[確認] をクリックします。以前に Config Sync を有効にしていない場合は、[確認] をクリックして anthosconfigmanagement.googleapis.com API を有効にします。

Google Cloud コンソールから信頼できる情報源の設定をフリートのデフォルトとして構成することはできませんが、パッケージをデプロイ機能を使用するときに複数のクラスタを選択できます。

Terraform

Config Sync をフリートのデフォルトとして有効にするには、次の例をご覧ください。

resource "google_gke_hub_feature" "configmanagement_feature_member" {
  name     = "configmanagement"
  location = "global"

  fleet_default_member_config {
    configmanagement {
      config_sync {
        # The field `enabled` was introduced in Terraform version 5.41.0, and
        # needs to be set to `true` explicitly to install Config Sync.
        enabled = true
        oci {
          sync_repo   = "REPO"
          policy_dir  = "DIRECTORY"
          secret_type = "SECRET"
        }
      }
    }
  }
}

次のように置き換えます。

  • REPO: 構成ファイルを含む OCI イメージ リポジトリの URL。
  • DIRECTORY: 同期するリソースを含むディレクトリの絶対パス。ルート ディレクトリを使用する場合は、このフィールドを空白のままにします。
  • SECRET: Secret 認証タイプ。

Terraform の使用方法の詳細については、Terraform を使用して Config Sync リソースをプロビジョニングするをご覧ください。

既存のクラスタを更新してフリートのデフォルトを継承する

既存のクラスタを更新してデフォルトの Config Sync 設定を使用するには、 Google Cloud コンソールまたは gcloud CLI を使用して、選択したフリート クラスタをフリートのデフォルトに同期します。また、Terraform を使用して、前のセクションの Config Sync のインストール手順に沿って、同じ設定で各クラスタを手動で構成することもできます。以前に Terraform を使用してフリートのデフォルトを指定した場合は、デフォルトの設定に使用したものと同じ configmanagementconfig_sync ブロックを使用して、選択したクラスタを構成します。

Config Sync のデフォルト設定をフリート全体で同期する手順は次のとおりです。

gcloud

  1. 既存のメンバーシップをフリートのデフォルト構成に同期します。

    gcloud beta container fleet config-management apply \
        --origin=FLEET \
        --membership=MEMBERSHIP_NAME
    

    MEMBERSHIP_NAME は、フリートのデフォルト構成と同期するクラスタのメンバーシップ名に置き換えます。

  2. メンバーシップの構成がフリートのデフォルトと同期されていることを確認します。

    gcloud beta container fleet config-management status
    

    このコマンドの出力には、同期したメンバーシップの Synced_to_Fleet_Default ステータスが Yes と表示されます。

Console

  1. 機能マネージャーに移動します。

    [機能マネージャー: Config Sync] に移動

  2. クラスタの表で、フリートの設定に同期するクラスタを選択します。

  3. [フリートの設定に同期] をクリックします。

フリートのデフォルトを無効にする

Config Sync のデフォルト設定をフリート全体で無効にする手順は次のとおりです。

  1. フリートのデフォルト構成を無効にするには、次のコマンドを実行します。

    gcloud beta container fleet config-management disable --fleet-default-member-config
    
  2. フリートのデフォルト構成が無効になっていることを確認します。

    gcloud beta container fleet config-management status
    

次のステップ