Config Connector を手動でインストールする


このページでは、Config Connector を手動でインストールする方法について説明します。

さまざまなインストール オプションについて詳しくは、インストール タイプの選択をご覧ください。

手動のメソッドでインストールすると、アドオンを使用するよりも速く更新できます。

以下の手順では Config Connector がクラスタモードとして構成されています。つまり、単一の Google Cloud IAM サービス アカウントとして権限を借用される 1 つのグローバル Config Connector コントローラが存在することを意味します。Config Connector リソースを追加し、同じクラスタに Kubernetes Namespace を追加する場合は、Namespace が指定されたモードに切り替えることを検討してください。このモードはスケーラビリティに優れ、複数の Google Cloud プロジェクトのリソースの管理など、マルチテナント ユースケースで IAM 権限の分離が強化されます。

始める前に

Config Connector Operator を手動でインストールする前に、次の手順を行います。

Config Connector Operator のインストール

Config Connector は、Kubernetes Operator を使用してインストールを最新の状態にします。この Operator をインストールするには、次の手順を実行します。

  1. 最新の Config Connector Operator の tar ファイルをダウンロードします。

    gcloud storage cp gs://configconnector-operator/latest/release-bundle.tar.gz release-bundle.tar.gz
    
  2. tar ファイルを解凍します。

    tar zxvf release-bundle.tar.gz
    
  3. クラスタに Config Connector Operator をインストールします。

    1. GKE Autopilot クラスタの場合:

      kubectl apply -f operator-system/autopilot-configconnector-operator.yaml
      
    2. GKE Standard クラスタの場合:

      kubectl apply -f operator-system/configconnector-operator.yaml
      

ID を作成する

Config Connector は、Identity and Access Management(IAM)サービス アカウントで認証し、GKE の Workload Identity を使用して IAM サービス アカウントを Kubernetes サービス アカウントにバインドすることで、 Google Cloud リソースを作成、管理します。

ID を作成するには、次の手順を行います。

  1. IAM サービス アカウントを作成する。既存のサービス アカウントを使用する場合は、そのアカウントを使用してこの手順を省略できます。

    サービス アカウントを作成するには、次のコマンドを使用します。
      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
    SERVICE_ACCOUNT_NAME をサービス アカウントの名前に置き換えます。
  2. サービス アカウントの作成の詳細については、サービス アカウントの作成と管理をご覧ください。

  3. IAM サービス アカウントに、プロジェクトへの昇格した権限を付与します。
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/editor"
    次のように置き換えます。
    • PROJECT_ID: プロジェクト ID。
    • SERVICE_ACCOUNT_NAME: サービス アカウントの名前。
  4. IAM サービス アカウントと、Config Connector が実行する事前定義された Kubernetes サービス アカウントの間の IAM ポリシー バインディングを作成します。
    gcloud iam service-accounts add-iam-policy-binding \
    SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
        --member="serviceAccount:PROJECT_ID.svc.id.goog[cnrm-system/cnrm-controller-manager]" \
        --role="roles/iam.workloadIdentityUser"
    次のように置き換えます。
    • SERVICE_ACCOUNT_NAME: サービス アカウントの名前。
    • PROJECT_ID: プロジェクト ID。

Config Connector を構成する

インストールを完了するには、ConfigConnector CustomResource の構成ファイルを作成し、kubectl apply コマンドを使用してそれを適用します。Config Connector Operator は、Google Cloud リソースの CRD と Config Connector コンポーネントをクラスタにインストールします。

クラスタモードとしてオペレータを構成するには、次の操作を行います。

  1. 次の YAML ファイルを configconnector.yaml という名前のファイルにコピーします。
    # configconnector.yaml
    apiVersion: core.cnrm.cloud.google.com/v1beta1
    kind: ConfigConnector
    metadata:
      # the name is restricted to ensure that there is only one
      # ConfigConnector resource installed in your cluster
      name: configconnector.core.cnrm.cloud.google.com
    spec:
      mode: cluster
      googleServiceAccount: "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com"
      # Setting `stateIntoSpec` to `Absent` is recommended. It means setting `cnrm.cloud.google.com/state-into-spec`
      # annotation to `absent` for all Config Connector resources created in the cluster in the future.
      # It prevents Config Connector from populating unspecified fields into the spec.
      stateIntoSpec: Absent
    次のように置き換えます。
    • SERVICE_ACCOUNT_NAME: サービス アカウントの名前。
    • PROJECT_ID: プロジェクト ID。
  2. kubectl apply を使用してクラスタに構成を適用します。
      kubectl apply -f configconnector.yaml

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

Config Connector では、プロジェクト、フォルダ、組織別にリソースを編成できます。これは、 Google Cloudでリソースを編成するのと同じ方法です。

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

この目的の Namespace がない場合は、kubectl を使用して Namespace を作成します。
kubectl create namespace NAMESPACE

NAMESPACE を実際の Namespace 名に置き換えます。例: config-connector

タブを選択して、Config Connector がリソースを作成する場所を選びます。

プロジェクト

特定のプロジェクトにリソースを作成するには、次のコマンドを実行します。

    kubectl annotate namespace \
    NAMESPACE cnrm.cloud.google.com/project-id=PROJECT_ID

以下を置き換えます。

  • NAMESPACE は、実際の Namespace 名に置き換えます。
  • PROJECT_ID は、 Google Cloud プロジェクト ID に置き換えます。

Folder

特定のフォルダにリソースを作成するには、次のコマンドを実行します。

    kubectl annotate namespace \
    NAMESPACE cnrm.cloud.google.com/folder-id=FOLDER_ID

以下を置き換えます。

  • NAMESPACE は、実際の Namespace 名に置き換えます。
  • FOLDER_ID は、 Google Cloud フォルダ ID に置き換えます。

組織

特定の組織にリソースを作成するには、次のコマンドを実行します。

    kubectl annotate namespace \
    NAMESPACE cnrm.cloud.google.com/organization-id=ORGANIZATION_ID

以下を置き換えます。

  • NAMESPACE は、実際の Namespace 名に置き換えます。
  • ORGANIZATION_ID は、 Google Cloud の組織 ID に置き換えます。

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

インストールの確認

Config Connector は、すべてのコンポーネントを cnrm-system という名前の Namespace で実行します。Pod の準備ができていることを確認するには、次のコマンドを実行します。

kubectl wait -n cnrm-system \
      --for=condition=Ready pod --all

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

pod/cnrm-controller-manager-0 condition met

Config Connector のアップグレード

Config Connector Operator の最新バージョンをダウンロードしてインストールするには:

gcloud storage cp gs://configconnector-operator/latest/release-bundle.tar.gz release-bundle.tar.gz
tar zxvf release-bundle.tar.gz
kubectl apply -f operator-system/configconnector-operator.yaml

Config Connector のダウングレード

Config Connector を完全にダウングレードすることはできません。Config Connector Operator と CRD の両方をダウングレードするには、Config Connector をアンインストールしてから再インストールし、リソースを再適用する必要があります。

Config Connector バージョン 1.123.1 以降では、Namespace が指定されたモードを使用するインストールでオペレーター バージョンをロールバックできます。ロールバックする Operator がある各 Namespace で、ConfigConnectorContext オブジェクトの spec.version フィールドを以前の Config Connector バージョンに設定します。

Config Connector コントローラは、最大 3 つのマイナー バージョンまでロールバックできます。特定のマイナー バージョンの最新のパッチ バージョンに常にロールバックする必要があります。

Config Connector のアンインストール

kubectl delete を使用して、コントローラ コンポーネントとともに Config Connector CRD を削除します。

kubectl delete ConfigConnector configconnector.core.cnrm.cloud.google.com \
    --wait=true

Config Connector Operator をアンインストールするには、次のコマンドを実行します。

kubectl delete -f operator-system/configconnector-operator.yaml  --wait=true

オペレーター以外のインストールからのアップグレード

Config Connector バージョン 1.33.0 以降では、GKE アドオン、またはオペレーターを使用したインストールのみがサポートされます。

(すべての Config Connector リソースを保持して)オペレーターにアップグレードするには、CRD を除くすべての Config Connector システム コンポーネントを削除してから、オペレーターをインストールする必要があります。

  1. 次のコマンドを実行して、CRD 以外の Config Connector システム コンポーネントを削除します。

    kubectl delete sts,deploy,po,svc,roles,clusterroles,clusterrolebindings --all-namespaces -l cnrm.cloud.google.com/system=true --wait=true
    kubectl delete validatingwebhookconfiguration abandon-on-uninstall.cnrm.cloud.google.com --ignore-not-found --wait=true
    kubectl delete validatingwebhookconfiguration validating-webhook.cnrm.cloud.google.com --ignore-not-found --wait=true
    kubectl delete mutatingwebhookconfiguration mutating-webhook.cnrm.cloud.google.com --ignore-not-found --wait=true
    
  2. Config Connector を GKE アドオンまたはオペレーターを使用してインストールします。

アドオンから手動インストールへの切り替え

アドオンとしてインストールすると、Config Connector のバージョンはインストールされている GKE バージョンに直接関連付けられます。

手動インストールでは、迅速な更新ができますが手動でアップグレードする必要があります。

すべてのリソースを安全に保ちながら切り替えるには、以下を実行します。

  1. ConfigConnector オブジェクトまたは ConfigConnectorContext オブジェクトを削除せずに、アドオンを無効にします。

    gcloud container clusters update CLUSTER_NAME --update-addons ConfigConnector=DISABLED
    

    CLUSTER_NAME は、Config Connector をインストールしたクラスタの名前に置き換えます。

  2. 手順に沿って目的のバージョンの Operator を手動でインストールします

次のステップ