このページはプラットフォーム管理者を対象としています。
このページでは、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 サーバーに OIDC でログインするをご覧ください。
- CONFIG_MANAGEMENT_YAML:
ConfigManagementFeatureSpec
リソースの構成ファイルへのパス。次の例をご覧ください。
apiVersion: managementcenter.anthos.cloud.google.com/v1
kind: ConfigManagementFeatureSpec
metadata:
name: config-management-spec-sample
namespace: anthos-management-center
spec:
version: "1.12.0"
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/v1
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/v1
kind: ConfigManagementFeatureSpec
metadata:
name: config-management-spec-sample
namespace: anthos-management-center
spec:
version: "1.12.0"
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
Anthos Config Management のステータスを確認する
Anthos Config Management のステータスは、ConfigManagementBinding
リソースをクエリすることで確認できます。
kubectl get ConfigManagementBinding -o \
jsonpath="{range .items[*].status.bindingItemStatuses[*]}{'\n'}{['clusterID', 'configRef', 'conditions']}" \
--namespace=anthos-management-center \
--kubeconfig=ADMIN_OIDC_KUBECONFIG \
| grep CLUSTER-NAME
以下を置き換えます。
ADMIN_OIDC_KUBECONFIG
: 管理クラスタの OIDC 認証情報。手順については、管理クラスタの Kubernetes API サーバーに OIDC でログインするをご覧ください。CLUSTER-NAME
: クラスタの名前。
Anthos Config Management の正常なステータスの出力例は次のとおりです。
target-user-cluster-1 {"name":"new-spec-f75y8","namespace":"anthos-management-center"} [{"lastTransitionTime":"2021-05-27T18:06:27Z","message":"","observedGeneration":1,"reason":"Healthy","status":"True","type":"Ready"}]
次のステップ
- Anthos Config Management について学ぶ。