このページでは、Anthos Config Management をインストールする方法について説明します。
Anthos Config Management では、中央の Git リポジトリから新しい構成を自動的にデプロイすることで、Anthos クラスタにポリシーと構成を宣言的に適用できます。詳細については、Anthos Config Management のドキュメントをご覧ください。
Anthos Config Management は、Management Center または kubectl を使用してインストールできます。Anthos Config Management をインストールするには、Git リポジトリが必要です。
Management Center からのインストール
[Config Management] タブに移動して [Setup] をクリックし、Anthos Config Management をユーザー クラスタに設定します。つづいて、そのページの手順に沿って設定を完了します。
既存の Anthos Config Management インストールを更新またはアップグレードすることもできます。[バージョン] 列にあるリンクをクリックして、既存の構成を変更します。
kubectl を使用したインストール
kubectl
を使用した Anthos Config Management のインストールは、2 つのステップからなるプロセスです。まず、Git リポジトリでの認証に使用する Config Sync の SSH 認証鍵を設定します。次に、Anthos Config Management リソース ConfigManagementFeatureSpec
と ConfigManagementBinding
をクラスタにインストールします。
kubectl
を使用して、既存の Anthos Config Management インストールを更新またはアップグレードすることもできます。
SSH 認証鍵を設定する
SSH 認証鍵ペアは、公開鍵と秘密鍵の 2 つのファイルから構成されています。通常、公開鍵の拡張子は .pub
です。
SSH 認証鍵ペアを作成し、Config Sync が Git リポジトリに対して認証されるようにします。自社のセキュリティとコンプライアンスの要件に応じて、すべてのクラスタに対して単一の鍵ペアを使用するか、クラスタごとに 1 つの鍵ペアを使用するかを選びます。
次のコマンドは 4,096 ビットの RSA 鍵を作成します。これよりビット数の少ない鍵はおすすめできません。
ssh-keygen -t rsa -b 4096 \ -C GIT_REPOSITORY_USERNAME \ -N '' \ -f /path/to/KEYPAIR_FILENAME
以下を置き換えます。
GIT_REPOSITORY_USERNAME
: Config Sync がリポジトリへの認証で使用するユーザー名。/path/to/KEYPAIR_FILENAME
: 鍵ペアを出力するパス。
新しく作成した公開鍵を認識するようにリポジトリを構成します。 ご使用の Git ホスティング プロバイダのドキュメントをご覧ください。
ユーザー クラスタの新しい Secret オブジェクトに秘密鍵を追加します。
kubectl create ns config-management-system --kubeconfig=USER_CLUSTER_KUBECONFIG && \ kubectl create secret generic git-creds --kubeconfig=USER_CLUSTER_KUBECONFIG \ --namespace=config-management-system \ --from-file=ssh=/path/to/KEYPAIR_PRIVATE_KEY_FILENAME
以下を置き換えます。
USER_CLUSTER_KUBECONFIG
: ユーザー クラスタの構成ファイル。これは Management Center から入手できます。/path/to/KEYPAIR_PRIVATE_KEY_FILENAME
: 秘密鍵の名前(.pub
拡張子のないファイル)。
ローカル ディスクから秘密鍵を削除するか、秘密鍵を保護します。
ConfigManagementFeatureSpec
と ConfigManagementBinding
を構成する
次に、クラスタに ConfigManagementFeatureSpec
リソースを作成します。
kubectl apply -f CONFIG_MANAGEMENT_YAML --kubeconfig=ADMIN_OIDC_KUBECONFIG
以下を置き換えます。
- ADMIN_OIDC_KUBECONFIG: 管理クラスタの OIDC 認証情報。管理クラスタの Kubernetes API サーバーへフェデレーション ID でログインするをご覧ください。
- CONFIG_MANAGEMENT_YAML:
ConfigManagementFeatureSpec
リソースの構成ファイルへのパス。次の例をご覧ください。
apiVersion: managementcenter.anthos.cloud.google.com/v1alpha1
kind: ConfigManagementFeatureSpec
metadata:
name: config-management-spec-sample
namespace: anthos-management-center
spec:
version: "1.7.1"
git:
syncRepo: "git@GIT_HOST_ADDRESS:REPO_NAME.git"
policyDir: "."
secretType: "ssh"
syncBranch: "master"
syncRev: "HEAD"
syncWait: 15
policyController:
enabled: true
---
apiVersion: managementcenter.anthos.cloud.google.com/v1alpha1
kind: ConfigManagementBinding
metadata:
name: config-management-binding-sample
namespace: anthos-management-center
spec:
configs:
- configRef:
name: config-management-spec-sample
namespace: anthos-management-center
placement:
clusterIDs:
- "CLUSTER-NAME"
以下を置き換えます。
GIT_HOST_ADDRESS
: Git リポジトリのホストアドレス。REPO_NAME
: Git リポジトリの名前。CLUSTER-NAME
: クラスタの名前。
更新とアップグレード
対応する ConfigManagementFeatureSpec
を変更することで、Anthos Config Management を更新またはアップグレードできます。
たとえば、非構造化リポジトリ機能を有効にするには、ConfigManagementFeatureSpec
を次のように更新します。
apiVersion: managementcenter.anthos.cloud.google.com/v1alpha1
kind: ConfigManagementFeatureSpec
metadata:
name: config-management-spec-sample
namespace: anthos-management-center
spec:
version: "1.7.1"
sourceFormat: "unstructured"
git:
syncRepo: "git@<YOUR_GIT_HOST_ADDRESS>:<YOUR_UNSTRUCTURED_REPO>.git"
policyDir: "."
secretType: "ssh"
syncBranch: "master"
syncRev: "HEAD"
syncWait: 15
policyController:
enabled: true