デフォルトの設定で Config Sync をインストールする

Config Sync は、Kubernetes 構成をクラスタと同期させます。このドキュメントでは、デフォルト設定を使用して Config Sync を有効にして構成する方法について説明します。非構造化 Git リポジトリからの構成の同期に重点を置いています。

このページは、GitOps ツールを実装してチームの構成管理を集中化するオペレーターを対象としています。 Google Cloud のコンテンツで使用されている一般的なロールとタスクの例の詳細については、一般的な GKE ユーザーロールとタスクをご覧ください。

詳細設定で Config Sync をインストールする手順については、Config Sync のインストールをカスタマイズするをご覧ください。

始める前に

Config Sync をインストールする前に、Git リポジトリと GKE クラスタを準備します。

Git リポジトリを作成し、Config Sync にアクセス権を付与する

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

  • Config Sync でクラスタに同期する構成ファイルを含む Git リポジトリを作成するか、対象リポジトリへのアクセス権を取得します。

  • Git リポジトリが公開されている場合は、追加の操作は必要ありません。Config Sync には追加の権限は必要ありません。

  • Git リポジトリが非公開の場合は、Config Sync に Git へのアクセス権を付与するの手順に沿って操作します。

クラスタの作成

クラスタがすでに準備されている場合(Config Sync に Git へのアクセス権を付与するの手順に沿って操作した場合など)は、Config Sync をインストールするに進みます。

Config Sync では、クラスタがフリートに登録されている必要があります。クラスタを登録するには、次の操作を行います。

Console

必要なご対応は特にありません。Config Sync をインストールすると、クラスタはフリートに自動的に登録されます。

gcloud

  • フリートに登録されている Autopilot クラスタを作成するには、次のコマンドを実行します。

    gcloud container clusters create-auto CLUSTER_NAME --enable-fleet
    
  • フリートに登録されている Standard クラスタを作成するには、次のコマンドを実行します。

    gcloud container clusters create CLUSTER_NAME --enable-fleet \
        --workload-pool=PROJECT_ID.svc.id.goog
    

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

  • CLUSTER_NAME: クラスタの名前。
  • PROJECT_ID: プロジェクト ID。

クラスタの登録の詳細については、クラスタをフリートに登録するをご覧ください。

Config Sync のインストール

Git リポジトリから登録済みクラスタに構成を同期するように Config Sync を有効にして構成するには、次の操作を行います。

Console

Google Cloud コンソールを使用する場合は、まずクラスタに Config Sync をインストールしてから、Config Sync が Git リポジトリから同期できるようにするパッケージを構成します。

Config Sync のインストール

  1. Google Cloud コンソールの [Config Sync] ページに移動します。

    [構成] に移動

  2. [Config Sync のインストール] をクリックします。

  3. [フリート内のすべてのクラスタにインストールする] を選択します。

  4. その他の設定はすべてデフォルトのままにします。

  5. [Config Sync のインストール] をクリックします。

[設定] タブで、数分後、フリート内のクラスタの [ステータス] 列に [有効] が表示されます。

パッケージをデプロイする

  1. [クラスタ パッケージをデプロイ] をクリックします。

  2. [クラスタを選択] タブで、パッケージをデプロイするクラスタを選択し、[続行] をクリックします。

  3. [パッケージを構成] タブをクリックし、パッケージの名前を入力します。

  4. [ソース] セクションで、次の操作を行います。

    1. [リポジトリの URL] フィールドに、Git リポジトリの URL を入力します。

    2. 省略可: 他のフィールド設定を確認して更新します。リポジトリの構造によっては、これらの設定を更新する必要がない場合があります。

  5. 省略可: リポジトリが非公開の場合は、[詳細設定] セクションを開いて認証方法を構成します。 Google Cloud コンソールには、認証設定の構成に役立つ手順が組み込まれています。

  6. その他の設定はすべてデフォルトのままにします。

  7. [パッケージをデプロイ] をクリックします。

Config Sync の [パッケージ] ページにリダイレクトされます。数分後、構成したクラスタの [同期ステータス] 列に「同期済み」と表示されます。

gcloud

gcloud CLI を使用する場合は、Config Sync の設定を含むマニフェストを作成し、その設定をクラスタに適用して Config Sync をインストールします。

  1. ConfigManagement フリート機能を有効にします。

    gcloud beta container fleet config-management enable
    
  2. apply-spec.yaml というマニフェストを作成します。このマニフェストの例には、推奨されるデフォルト設定が含まれています。

    applySpecVersion: 1
    spec:
      configSync:
        enabled: true
        sourceFormat: unstructured
        syncRepo: REPO_URL
        # syncRev: REVISION
        secretType: none
        preventDrift: false
    

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

    • REPO_URL: Git リポジトリの URL(例: https://github.com/GoogleCloudPlatform/anthos-config-management-samples)。
    • (省略可)REVISION: 同期元となる Git リビジョン(タグまたはハッシュ)またはブランチ。HEAD 以外の場所から同期する必要がある場合は、このフィールドのコメントを解除して置き換えます。

      非公開リポジトリの場合は、secretType フィールドをサポートされている認証方法に変更できます。通常は、Secure Source Manager を使用する Google サービス アカウント(gcpserviceaccount)をおすすめします。または、ほとんどの Git プロバイダで動作する ssh を使用します。サポートされている認証方法の詳細な手順については、Git へのアクセス権を付与するをご覧ください。

  3. マニフェストをクラスタに適用します。

    gcloud beta container fleet config-management apply \
        --membership=MEMBERSHIP_NAME \
        --config=apply-spec.yaml \
        --project=PROJECT_ID
    

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

    • MEMBERSHIP_NAME: クラスタの登録時に選択したフリートのメンバーシップ名。gcloud container fleet memberships list コマンドを使用して名前を取得します。
    • PROJECT_ID: プロジェクト ID。

インストールを確認する

Config Sync をインストールして構成したら、インストールが正常に完了したことを確認します。

Console

  1. Google Cloud コンソールの [Config Sync] ページに移動します。

    Config Sync に移動

  2. [パッケージ] タブで、クラスタ テーブルの [同期ステータス] 列を確認します。Config Sync が正常にインストールされると、ステータスは「インストール済み」になります。Git リポジトリが正常に構成されると、ステータスは「同期済み」になります。

gcloud

次のコマンドを実行します。

nomos status

インストールが正常に完了すると、ステータスは SYNCED または PENDING になります。

報告されたエラーなど、nomos status コマンドによって提供される情報の詳細については、nomos コマンドライン ツールのドキュメントの Config Sync のステータスを確認するをご覧ください。

次のステップ