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 のインストール
Google Cloud コンソールの [Config Sync] ページに移動します。
[Config Sync のインストール] をクリックします。
[フリート内のすべてのクラスタにインストールする] を選択します。
その他の設定はすべてデフォルトのままにします。
[Config Sync のインストール] をクリックします。
[設定] タブで、数分後、フリート内のクラスタの [ステータス] 列に [有効] が表示されます。
パッケージをデプロイする
[クラスタ パッケージをデプロイ] をクリックします。
[クラスタを選択] タブで、パッケージをデプロイするクラスタを選択し、[続行] をクリックします。
[パッケージを構成] タブをクリックし、パッケージの名前を入力します。
[ソース] セクションで、次の操作を行います。
[リポジトリの URL] フィールドに、Git リポジトリの URL を入力します。
省略可: 他のフィールド設定を確認して更新します。リポジトリの構造によっては、これらの設定を更新する必要がない場合があります。
省略可: リポジトリが非公開の場合は、[詳細設定] セクションを開いて認証方法を構成します。 Google Cloud コンソールには、認証設定の構成に役立つ手順が組み込まれています。
その他の設定はすべてデフォルトのままにします。
[パッケージをデプロイ] をクリックします。
Config Sync の [パッケージ] ページにリダイレクトされます。数分後、構成したクラスタの [同期ステータス] 列に「同期済み」と表示されます。
gcloud
gcloud CLI を使用する場合は、Config Sync の設定を含むマニフェストを作成し、その設定をクラスタに適用して Config Sync をインストールします。
ConfigManagement
フリート機能を有効にします。gcloud beta container fleet config-management enable
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 へのアクセス権を付与するをご覧ください。
マニフェストをクラスタに適用します。
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
Google Cloud コンソールの [Config Sync] ページに移動します。
[パッケージ] タブで、クラスタ テーブルの [同期ステータス] 列を確認します。Config Sync が正常にインストールされると、ステータスは「インストール済み」になります。Git リポジトリが正常に構成されると、ステータスは「同期済み」になります。
gcloud
次のコマンドを実行します。
nomos status
インストールが正常に完了すると、ステータスは SYNCED
または PENDING
になります。
報告されたエラーなど、nomos status
コマンドによって提供される情報の詳細については、nomos
コマンドライン ツールのドキュメントの Config Sync のステータスを確認するをご覧ください。