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 がまだインストールされておらず、Workload Identity と Kubernetes Engine Monitoring を有効にした GKE クラスタの作成または識別を行います。
- クラスタに接続するように
kubectl
を構成します。
Config Connector Operator のインストール
Config Connector は、Kubernetes Operator を使用してインストールを最新の状態にします。この Operator をインストールするには、次の手順を実行します。
最新の Config Connector Operator の tar ファイルをダウンロードします。
gsutil cp gs://configconnector-operator/latest/release-bundle.tar.gz release-bundle.tar.gz
tar ファイルを解凍します。
tar zxvf release-bundle.tar.gz
クラスタに Config Connector Operator をインストールします。
GKE Autopilot クラスタの場合:
kubectl apply -f operator-system/autopilot-configconnector-operator.yaml
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 を作成するには、次の手順を行います。
-
IAM サービス アカウントを作成する。既存のサービス アカウントを使用する場合は、そのアカウントを使用してこの手順を省略できます。
サービス アカウントを作成するには、次のコマンドを使用します。gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
SERVICE_ACCOUNT_NAME
は、サービス アカウントの名前に置き換えます。 -
プロジェクトに対する昇格された権限を 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
: サービス アカウントの名前。
-
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 コンポーネントをクラスタにインストールします。
オペレーターをクラスタモードとして構成するには、次の手順を完了します。
-
次の 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。
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 の最新バージョンをダウンロードしてインストールするには:
gsutil 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 システム コンポーネントを削除してから、オペレーターをインストールする必要があります。
次のコマンドを実行して、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
アドオンから手動インストールへの切り替え
アドオンとしてインストールすると、Config Connector のバージョンはインストールされている GKE バージョンに直接関連付けられます。
手動インストールでは、迅速な更新ができますが手動でアップグレードする必要があります。
すべてのリソースを安全に保ちながら切り替えるには、以下を実行します。
ConfigConnector
オブジェクトまたはConfigConnectorContext
オブジェクトを削除せずに、アドオンを無効にします。gcloud container clusters update CLUSTER_NAME --update-addons ConfigConnector=DISABLED
CLUSTER_NAME
は、Config Connector をインストールしたクラスタの名前に置き換えます。
次のステップ
- Config Connector を使ってみる。
- Config Connector のベスト プラクティスについて学習する。