他の Kubernetes ディストリビューションへのインストール
このページでは、Google Cloud で Google Kubernetes Engine(GKE)以外の Kubernetes ディストリビューション(AWS 上の GKE など)に Config Connector をインストールする方法について説明します。
準備
作業を始める前に、次のことを確認してください。
- Config Connector をインストールするには、Google Cloud プロジェクトを作成または選択します。
- プロジェクトのサービス アカウントを作成してダウンロードする権限があることを確認してください。
- Config Connector をまだインストールしていない Kubernetes クラスタを作成または特定します。
Config Connector のインストール
Config Connector を別の Kubernetes 環境にインストールするには、Kubernetes クラスタを作成または特定した後、Identity and Access Management(IAM)サービス アカウントを作成してから、クラスタに Config Connector コンポーネントをインストールします。
ClusterRoleBinding を作成する
Config Connector は、リソースを作成する前に、Kubernetes のロールを作成する権限を必要とします。
次のコマンドを実行して、ロールを作成できることを確認します。
kubectl auth can-i create roles
出力が yes
の場合は、ID の作成に進みます。
出力が no
の場合は、ロールを作成できるようにする ClusterRoleBinding
をクラスタに作成します。
kubectl create clusterrolebinding cluster-admin-binding \
--clusterrole cluster-admin \
--user ACCOUNT_EMAIL
ACCOUNT_EMAIL は、Cloud 請求先アカウントへのログインに使用するメールアドレスに置き換えます。
出力には、cluster-admin-binding created
というフレーズが含まれます。そのフレーズが表示されない場合は、Cloud 請求先アカウントまたは GKE クラスタの管理者に、権限についてお問い合わせください。
ID を作成する
Config Connector は、他のリソースと通信するために Cloud Identity を必要とします。ID を設定するには、IAM サービス アカウントとサービス アカウント キーを作成します。 その後、Config Connector を実行する各クラスタにキーの認証情報を Secret としてインポートします。
次の手順では、Google Cloud サービス アカウントの認証情報鍵を Kubernetes クラスタにインポートします。通常、サービス アカウントの認証情報をクラスタに直接インポートすることは、特にサードパーティ ワークロードやカスタム ワークロードを同じクラスタで実行している場合、安全でないとみなされます。このアプローチでは、ノードからクラスタへの昇格のループホールを利用して、この Secret を介して Google Cloud サービス アカウントの権限を借用できます。GKE クラスタを使用している場合は、Workload Identity Federation for GKE を使用することをおすすめします。
サービス アカウントの作成
サービス アカウントを作成するには、次の手順を行います。
IAM サービス アカウントを作成する。新しいサービス アカウントを作成せずに、既存のサービス アカウントを使用することもできます。
gcloud CLI を使用してサービス アカウントを作成するには、次のコマンドを実行します。
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/owner"
以下を置き換えます。
PROJECT_ID
は、Google Cloud プロジェクト ID に置き換えます。SERVICE_ACCOUNT_NAME
は、サービス アカウントの名前に置き換えます。
サービス アカウントキーを作成し、その認証情報を
key.json
という名前のファイルにエクスポートします。gcloud iam service-accounts keys create --iam-account \ SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com key.json
以下を置き換えます。
SERVICE_ACCOUNT_NAME
は、サービス アカウントの名前に置き換えます。PROJECT_ID
は、Google Cloud プロジェクト ID に置き換えます。
クラスタに認証情報を適用する
Config Connector を実行するクラスタに認証情報を適用するには、次の手順を実行します。
cnrm-system
名前空間を作成します。kubectl create namespace cnrm-system
キーの認証情報を Secret としてインポートします。
kubectl create secret generic SECRET_NAME \ --from-file key.json \ --namespace cnrm-system
SECRET_NAME を、Secret に付ける名前に置き換えます。
システムから認証情報を削除します。
rm key.json
Config Connector Operator のインストール
以下の手順で Config Connector Operator をインストールします。
最新の Config Connector Operator の tar ファイルをダウンロードします。
gcloud storage cp gs://configconnector-operator/latest/release-bundle.tar.gz release-bundle.tar.gz
tar ファイルを解凍します。
tar zxvf release-bundle.tar.gz
クラスタに Config Connector Operator をインストールします。
kubectl apply -f operator-system/configconnector-operator.yaml
Config Connector を構成する
演算子を使用して Config Connector を構成するには、ConfigConnector
CustomResource の構成ファイルを作成し、kubectl apply
コマンドを使用してそれを適用します。
演算子を使用して Config Connector を構成するには :
次の YAML を
configconnector.yaml
というファイルにコピーします。apiVersion: core.cnrm.cloud.google.com/v1beta1 kind: ConfigConnector metadata: # the name is restricted to ensure that there is only ConfigConnector # instance installed in your cluster name: configconnector.core.cnrm.cloud.google.com spec: mode: cluster credentialSecretName: SECRET_NAME stateIntoSpec: Absent
SECRET_NAME は、前の手順で作成した Secret の名前で置き換えます。
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 をアップグレードするには、最新バージョンの 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 のアンインストール
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 のトラブルシューティング方法を学習する。