クラスタの vCenter 認証情報の更新

Anthos GKE On-Prem バージョン 1.3.1 以降では、gkectl update credentials vsphere コマンドを使用して、管理クラスタとユーザー クラスタの vCenter 認証情報を更新します。

それぞれの管理クラスタとユーザー クラスタは、クラスタの作成に使用した vCenter のユーザ名とパスワードを使用して、最初に構成されます。vCenter 認証情報を更新するか、管理者のオーナー権限を別の vSphere ユーザー アカウントに移行する必要がある場合は、クラスタの構成ファイルを更新し、gkectl update credentials vsphere コマンドを使用して変更をデプロイします。

vCenter のユーザー名とパスワードの構成の例:

...
vcenter:
  credentials:
    ...
    username: "vCenter-username@vsphere.local"
    password: "vCenter-user-password"
...

始める前に

vCenter 認証情報を更新する前に、次の前提条件を満たしていることを確認してください。

  • クラスタ バージョン 1.3.1 以降のみがサポートされています。

  • gkectl update credentials vsphere コマンドは現在、クラスタの vCenter usernamepassword のみをサポートしています。構成ファイルにある他の変更はすべて無視されます。

  • クラスタに追加する vCenter 認証情報はすでに存在している必要があります。vCenter のロールとユーザー権限について学習する

クラスタ認証情報の更新

クラスタの vCenter 認証情報を更新するには、次の手順を実行します。

  1. 管理クラスタまたはユーザー クラスタを構成する既存の vCenter 認証情報のユーザー名とパスワードを取得します。

  2. 次のコマンドを実行して、管理ワークステーションに SSH 接続します。

    ssh -i ~/.ssh/vsphere_workstation ubuntu@[IP_ADDRESS]
    

    ここで、[IP_ADDRESS] は管理ワークステーションの IP アドレスです。

  3. 構成ファイルをエディタで開きます。

    この目的でのみ変更および使用できるコピーの作成を検討してください。 例: vcenter-creds-config.yaml

  4. 構成ファイルを変更します。

    1. 管理クラスタとユーザー クラスタのどちらを更新するかに応じて、次のいずれかのセクションを削除して構成ファイルを変更する必要があります。

      • ユーザー クラスタを更新するには、admincluster セクションを削除します。

        構成の usercluster セクションはそのままにしますが、admincluster セクションの内容はすべて削除します。例:

        admincluster:
          vcenter:
            network: ""
          bigip:
            ...
          podiprange: ""

      • 管理クラスタを更新するには、usercluster セクションを削除します。

        構成の admincluster セクションはそのままにしますが、usercluster セクションの内容はすべて削除します。例:

        usercluster:
          vcenter:
            network: ""
          bigip:
            ...
          clustername: ""
          masternode:
            ...
          podiprange: ""

    2. vCenter.credentialsusername 属性と password 属性を更新して、クラスタに設定する vCenter 認証情報を含めます。 例:

      gcp:
        whitelistedServiceAccountKeyPath: "my-key-folder/whitelisted-key.json"
      vCenter:
        credentials:
          address: "203.0.113.1"
          username: "vCenter-user-account@vsphere.local"
          password: "user-account-password"
        datacenter: "MY-DATACENTER"
        datastore: "MY-DATASTORE"
        cluster: "MY-CLUSTER"
        ...
  5. gkectl update credentials vsphere コマンドを実行して、変更をクラスタにデプロイします。

    gkectl update credentials vsphere \
    --config [VCENTER_CREDS_CONFIG.YAML] \
    --kubeconfig [CLUSTER_KUBECONFIG] \
    --update-admin-cluster

    ここで

    • [VCENTER_CREDS_CONFIG.YAML]: クラスタにデプロイする vCenter 認証情報を含む構成ファイルを指定します。例: vcenter-creds-config.yaml
    • [CLUSTER_KUBECONFIG]: 更新する管理クラスタの kubeconfig ファイルを指定します。 例: kubeconfig

      管理クラスタの場合は、--update-admin-cluster フラグも含める必要があります。

    • --update-admin-cluster: 管理クラスタに変更をデプロイする場合は必須のフラグです。ユーザー クラスタに変更をデプロイする際は、このフラグを除外します。

    結果: 変更された vCenter 認証情報はサーバーに対して即座に検証され、「vsphere credentials updated successfully」という確認がターミナルに出力されます。新しい認証情報が vCenter Server へのログインに失敗した場合は、構成ファイルの usernamepassword を編集し、変更を再デプロイします。

    例:

    • ユーザー クラスタの例: ユーザー クラスタに vCenter 認証情報をデプロイするには、次のコマンドを実行します。

      gkectl update credentials vsphere \
      --config vcenter-creds-user-config.yaml --kubeconfig admin-cluster-kubeconfig

      結果:

      validating new credentials against vcenter
      restarted "deployment/clusterapi-controllers" in namespace "testcluster"
      restarted "deployment/kube-controller-manager" in namespace "testcluster"
      restarted "statefulsets/kube-apiserver" in namespace "testcluster"
      vsphere credentials updated successfully.
    • 管理クラスタの例: 管理クラスタに vCenter 認証情報の変更をデプロイするには、次のコマンドを実行します。

      gkectl update credentials vsphere \
      --config vcenter-creds-admin-config.yaml --kubeconfig admin-cluster-kubeconfig \
      --update-admin-cluster

      結果:

      validating new credentials against vcenter
      restarted "deployment/clusterapi-controllers" in namespace "kube-system"
      vsphere credentials updated successfully.