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 に置き換えます。

フォルダ

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

    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 Controller のアンインストールに次の手順を使用しないでください。

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 を手動でインストールします

次のステップ