GKE アドオンでのインストール
このページでは、GKE アドオンを使用して Google Kubernetes Engine(GKE)クラスタに Config Connector をインストールする方法について説明します。
各インストール オプションとそのメリットとデメリットの詳細については、インストール タイプの選択をご覧ください。
始める前に
作業を始める前に、次のタスクが完了していることを確認してください。
- Google Kubernetes Engine API を有効にする。 Google Kubernetes Engine API を有効化
- このタスクに Google Cloud CLI を使用する場合は、gcloud CLI をインストールして初期化します。gcloud CLI をインストール済みの場合は、
gcloud components updateコマンドを実行して最新のバージョンを取得します。以前のバージョンの gcloud CLI では、このドキュメントのコマンドを実行できない場合があります。
Config Connector をインストールする Google Cloud プロジェクトを作成または選択します。
以前に Config Connector を手動でインストールした場合は、Config Connector アドオンをインストールする前に Config Connector アンインストールしてください。
Config Connector アドオンのインストール
Config Connector アドオンを使用するには、新しい GKE クラスタを作成するか、既存のクラスタでそれを有効化します。Config Connector アドオンをインストールしたら、Google サービス アカウントと Namespace を使用して Config Connector インストールを構成します。
要件
Config Connector アドオンには次の要件があります。
次の GKE バージョンを使用する必要があります。
- 1.15.11-gke.5 以降
- 1.16.8-gke.8 以降
- 1.17.4-gke.5 以降
Config Connector を有効にするクラスタで、Workload Identity プールと Kubernetes Engine Monitoring を有効にする必要があります。
GKE クラスタを設定する
Config Connector アドオンは、新規または既存のクラスタで使用できます。
Config Connector アドオンを有効にして新しいクラスタを作成する
GKE クラスタは、gcloud CLI またはGoogle Cloud コンソールを使用して作成できます。
gcloud
Google Cloud CLI でクラスタを作成するには、次のコマンドを実行します。
gcloud container clusters create CLUSTER_NAME \
--release-channel CHANNEL \
--addons ConfigConnector \
--workload-pool=PROJECT_ID.svc.id.goog \
--logging=SYSTEM \
--monitoring=SYSTEM
以下を置き換えます。
- CLUSTER_NAME を GKE クラスタの名前に置き換えます。
- CHANNEL を GKE リリース チャンネルに置き換えます。
rapidとregularがサポートされています。 - PROJECT_ID: 実際の Google Cloud プロジェクト ID。
Google Cloud コンソール
Google Cloud コンソールでクラスタを作成するには、次の操作を行います。
Google Cloud コンソールで、[Kubernetes クラスタの作成] ページに移動します。
[クラスタの基本] セクションで、クラスタの名前とロケーションを指定します。
ナビゲーション パネルで、[詳細設定] をクリックします。
[Workload Identity] 行で、edit [構成を編集] をクリックし、[Workload Identity を有効にする] チェックボックスをオンにして、[保存] をクリックします。
[Config Connector] 行で、[クイック有効化] チェックボックスをオンにします。
省略可: 必要に応じて、クラスタの残りの部分を構成します。
[作成] をクリックします。
クラスタを作成したら、ID の作成に進みます。
既存のクラスタで Config Connector アドオンを有効にする
Config Connector アドオンは、gcloud または Google Cloud コンソールを使用して既存の GKE クラスタで有効にできます。
前提条件
既存のクラスタで Config Connector アドオンを有効にする前提条件は以下のとおりです。
- Config Connector アドオンの要件を満たすクラスタが必要です。
Config Connector をインストールするクラスタで、Workload Identity Federation for GKE を設定します。
ノードプールで Workload Identity Federation for GKE を有効にするには、gcloud コマンドライン ツールを使用します。
gcloud container node-pools update NODE_POOL \
--workload-metadata=GKE_METADATA \
--cluster CLUSTER_NAME
次のように置き換えます。
- NODE_POOL をノードプールの名前に置き換えます。
- CLUSTER_NAME をクラスタ名に置き換えます。
Config Connector アドオンを有効にする
Config Connector アドオンは、Google Cloud CLI または Google Cloud コンソールを使用して既存の GKE クラスタで有効にできます。
gcloud
既存の GKE クラスタで Config Connector アドオンを有効にするには、Google Cloud CLI を使用します。
gcloud container clusters update CLUSTER_NAME \
--update-addons ConfigConnector=ENABLED
CLUSTER_NAME を GKE クラスタの名前に置き換えます。
Google Cloud コンソール
Google Cloud コンソールで Google Kubernetes Engine のメニューに移動します。
Config Connector をインストールするクラスタを選択します。[クラスタの詳細] ページが表示されます。
[機能] セクションで、Config Connector の行を見つけて [ 編集] をクリックします。
[Config Connector を有効にする] チェックボックスをオンにして、[変更を保存] をクリックし、クラスタを更新します。
ID を作成する
Config Connector は、Identity and Access Management(IAM)サービス アカウントで認証し、Workload Identity Federation for GKE を使用して IAM サービス アカウントを Kubernetes サービス アカウントにバインドすることで、 Google Cloud リソースを作成、管理します。
ID を作成するには、次の手順を行います。
IAM サービス アカウントを作成します。既存のサービス アカウントを使用する場合は、そのアカウントを使用してこの手順を省略できます。
gcloud iam service-accounts create SERVICE_ACCOUNT_NAMESERVICE_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 に置き換えます。
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"
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 アドオンのアップグレードは、 Google Cloudによって管理されます。
アップグレードが行われるたびに、クラスタ内のリソースが保持されます。
Google Cloud が Config Connector アドオンのアップグレードを管理する方法について確認するか、Config Connector の最新バージョンを取得する方法に進んでください。
Config Connector アドオンのアップグレードを Google Cloud 管理する方法
GKE クラスタが取得する Config Connector のバージョンは、クラスタの GKE のマイナー バージョンによって異なります。次に例を示します。
| GKE マイナー バージョン | Config Connector バージョン |
|---|---|
| 1.20 | 1.69.0 |
| 1.21 | 1.69.0 |
| 1.22 | 1.71.0 |
| 1.23 | 1.82.0 |
| 1.24 | 1.89.0 |
バージョンが認定されると、 Google Cloud 最新の GKE マイナー バージョンが新たにリリースされた Config Connector バージョンに再マッピングされます。この操作は、Regular リリース チャンネルまたは Stable リリース チャンネルで公開されていないくらい新しい GKE マイナー バージョンすべてに対して行われます。
クラスタが取得する Config Connector のバージョンは、クラスタの GKE マイナー バージョンによって異なるため、クラスタの Config Connector アドオンが Google Cloudによって自動的にアップグレードされるのには 2 つのケースがあります。
クラスタは、より新しい Config Connector バージョンにマッピングされた新しい GKE マイナー バージョンにアップグレードされます。
クラスタが、Regular リリース チャンネルまたは Stable リリース チャンネルで公開されていないくらい新しい GKE マイナー バージョンの場合、Google Cloud はその GKE マイナー バージョンを新しい Config Connector バージョンに再マッピングします。
Google Cloud が GKE マイナー バージョンを再マッピングし、既存のクラスタを新しい Config Connector バージョンにアップグレードする場合、その GKE マイナー バージョンに「新しい Config Connector バージョンをロールアウトする」と言われます。
Google Cloud は、安定性の理由から、Regular リリース チャンネルや Stable リリース チャンネルのバージョンで公開されているくらいの古い GKE マイナー バージョンに、新しい Config Connector バージョンをロールアウトしません。ただし、広範囲に及ぶ問題が検出された緊急時は除きます。
Config Connector の最新バージョンを取得するには
最新バージョンの Config Connector を使用するには、Config Connector を手動でインストールしてアップグレードすることをおすすめします。手動インストールでは、バージョンを直接制御できるため、最新の機能と修正プログラムが利用可能になるとすぐに使用できます。
Config Connector アドオンから手動インストールに切り替えるには、Config Connector アドオンから手動インストールに切り替える手順に沿って操作してください。
Config Connector アドオンを介してインストールされた Config Connector のバージョンは、12 か月以上遅れることがよくあります。Config Controller はアドオンよりも新しいですが、手動インストールと比較すると、最新バージョンよりも遅れる可能性があります。
Config Connector のアンインストール
Config Connector をアンインストールするには、次の手順を実行します。
kubectl deleteを使用して、コントローラ コンポーネントとともに Config Connector CRD を削除します。kubectl delete ConfigConnector configconnector.core.cnrm.cloud.google.com --wait=truegcloud CLI または Google Cloud コンソールを使用して、クラスタ内の Config Connector アドオンを無効にします。
gcloud
gcloudで Config Connector アドオンを無効にするには、次のコマンドを実行します。gcloud container clusters update CLUSTER_NAME --update-addons ConfigConnector=DISABLEDCLUSTER_NAME は、Config Connector アドオンがインストールされているクラスタの名前に置き換えます。
Cloud コンソール
Google Cloud コンソールから Config Connector アドオンを無効にするには、次の操作を行います。
Google Cloud コンソールの Google Kubernetes Engine クラスタページに移動し、更新するクラスタを選択します。
[編集] をクリックします。[クラスタの編集] 画面が表示されます。
[アドオン] をクリックします。
[Config Connector] を選択し、[Disabled] を選択します。
[保存] をクリックしてクラスタを更新します。
次のステップ
- Config Connector を使ってみる。
- Config Connector のトラブルシューティング方法を学習する。