Anthos Config Management をインストールする

このページはプラットフォーム管理者を対象としています。

このページでは、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 リソース ConfigManagementFeatureSpecConfigManagementBinding をクラスタにインストールします。

kubectl を使用して、既存の Anthos Config Management インストールを更新またはアップグレードすることもできます。

SSH 認証鍵を設定する

SSH 認証鍵ペアは、公開鍵と秘密鍵の 2 つのファイルから構成されています。通常、公開鍵の拡張子は .pub です。

  1. 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: 鍵ペアを出力するパス。
  2. 新しく作成した公開鍵を認識するようにリポジトリを構成します。 ご使用の Git ホスティング プロバイダのドキュメントをご覧ください。

  3. ユーザー クラスタの新しい 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 拡張子のないファイル)。
  4. ローカル ディスクから秘密鍵を削除するか、秘密鍵を保護します。

ConfigManagementFeatureSpecConfigManagementBinding を構成する

次に、クラスタに ConfigManagementFeatureSpec リソースを作成します。

kubectl apply -f CONFIG_MANAGEMENT_YAML --kubeconfig=ADMIN_OIDC_KUBECONFIG

以下を置き換えます。

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

以下を置き換えます。

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"}]

次のステップ