Config Connector のインストール

Config Connector は、Kubernetes アドオンであり、Kubernetes の構成により、Google Cloud リソースを管理できます。Anthos Config Management を使用すると、Anthos ユーザーは Config Connector を自動的にインストールおよびアンインストールできます。

始める前に

  • Anthos Config Management を使用して Config Connector をインストールするには、Anthos の使用権が必要です。Anthos の使用権がない場合は、このトピックの手順に従う代わりに、Config Connector の代替インストール方法のうちのいずれかを使用する必要があります。

  • 以下の手順を実行する前に、Anthos Config Management を v1.1.0 以降にアップグレードする必要があります。

  • Config Connector がインストールされていないクラスタが必要です。

Anthos Config Management を使用した Config Connector のインストール

Anthos Config Management を使用して Config Connector をインストールするには、クラスタの 1 つに Anthos Config Management を構成して Config Connector をインストールし、cnrm-system サービス アカウントを構成します。

Anthos Config Management の構成

  1. Anthos Config Management 構成ファイルspec.configConnector.enabled の値を true に設定します。

    # config-management.yaml
    
    apiVersion: configmanagement.gke.io/v1
    kind: ConfigManagement
    metadata:
      name: config-management
    spec:
      # Set to true to install and enable Config Connector
      configConnector:
        enabled: true
    
      # ...other fields...
      ```
    
  2. kubectl apply を使用して構成を適用します。

    kubectl apply -f config-management.yaml
    

Pod が作成されますが、プロジェクト内の Google Cloud リソースを管理するために cnrm-system サービス アカウントが構成されるまで実行されません。

構成を適用すると、cnrm-system 名前空間が作成され、そこにアノテーションを追加できます。

cnrm-system サービス アカウントの構成

Anthos Config Management が Google Cloud リソースを作成する前に、Config Connector は Identity and Access Management サービス アカウントを使用して認証する必要があります。

  1. cnrm-system サービス アカウントを作成します。

    gcloud iam service-accounts create cnrm-system --project [PROJECT_ID]
    
  2. サービス アカウントには、自動生成されたメールアドレスが関連付けられています。このメールアドレスを取得するには、次のコマンドを使用します。

    gcloud iam service-accounts list | grep cnrm-system
    

    次のコマンドで [SERVICE_ACCOUNT_EMAIL] が表示されている場所で、この値を使用します。

  3. 必要となる特定の Google Cloud リソースを構成するために、cnrm-system サービス アカウントに必要なロールと権限を付与します。この例では、roles/owner のロールを付与しています。

    gcloud projects add-iam-policy-binding [PROJECT_ID] \
     --member "serviceAccount:[SERVICE_ACCOUNT_EMAIL]" \
     --role "roles/owner"
    
  4. ローカルに key.json として保存されるサービス アカウントのキーを作成します。

    gcloud iam service-accounts keys create \
     --iam-account "[SERVICE_ACCOUNT_EMAIL]" \
     ./key.json
    
  5. クラスタ内の cnrm-system 名前空間にキーを挿入します。

    kubectl create secret generic gcp-key \
     --from-file ./key.json \
     --namespace cnrm-system
    
  6. キーには機密データが含まれているため、キーのローカルコピーを削除します。

    rm ./key.json
    

これで、Config Connector は、リポジトリに保存されているコンフィグを、Anthos Config Management に登録されているクラスタに同期することで、Google Cloud リソースを管理できるようになりました。

リソースを作成する場所の指定

Anthos Config Management を使用してリソースを作成する前に、リソースを作成する場所を構成する必要があります。Config Connector は、リソースを作成する場所を決定するために、リソース構成または名前空間のアノテーションを使用します。詳細については、リソースの整理をご覧ください。

プロジェクト、フォルダ、または組織内でリソースを作成できますが、これは Google Cloud でリソースを整理する方法と同じです。

プロジェクト

特定のプロジェクトにリソースを作成するには、次のコマンドを実行します。[NAMESPACE_NAME] は名前空間名に、[PROJECT_ID] は Google Cloud プロジェクト ID に置き換えます。

kubectl annotate namespace \
[NAMESPACE_NAME] cnrm.cloud.google.com/project-id=[PROJECT_ID]

フォルダ

特定のフォルダにリソースを作成するには、次のコマンドを実行します。[NAMESPACE_NAME] は名前空間名に、[FOLDER_ID] は Google Cloud フォルダ ID に置き換えます。

kubectl annotate namespace \
[NAMESPACE_NAME] cnrm.cloud.google.com/folder-id=[FOLDER_ID]

組織

特定の組織にリソースを作成するには、次のコマンドを実行します。[NAMESPACE_NAME] は名前空間に、[ORGANIZATION_ID] は Google Cloud 組織 ID に置き換えます。

kubectl annotate namespace \
[NAMESPACE_NAME] cnrm.cloud.google.com/organization-id=[ORGANIZATION_ID]

名前空間にアノテーションを付けると、Config Connector は対応するプロジェクト、フォルダー、または組織にリソースを作成します。Config Connector が Kubernetes 名前空間を使用する方法の詳細については、Kubernetes Namespace と Google Cloud プロジェクトをご覧ください。

インストールの確認

Config Connector が正しくインストールされている場合、その Pod と CRD がクラスターに存在します。

  1. Config Connector Pod が実行されていることを確認します。

    kubectl wait -n cnrm-system \
     --for=condition=Initialized pod \
     cnrm-controller-manager-0
    

    Config Connector が正しくインストールされている場合、出力は次のようになります。

    pod/cnrm-controller-manager-0 condition met

  2. サポートされている各 Google Cloud リソース タイプの CRD がクラスタにインストールされていることを確認します。

    kubectl get crds | grep cnrm.cloud.google.com
    

    Config Connector が正しくインストールされている場合、コマンドは bigquerydatasets.bigquery.cnrm.cloud.google.com のように、.cnrm.cloud.google.com で終わるリソースを一覧表示します。

Config Connector のアンインストール

Config Connector を無効にしてアンインストールするには、Anthos Config Management の構成ファイルを編集し、spec.configConnector.enabled の値を false に設定します。

Config Connector Pod が停止して削除され、各 Google Cloud リソースタイプの CRD が削除されます。既存の Google Cloud リソースは変更されません

次のステップ