更新集群的 vCenter 凭据

从 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.credentials 下的 usernamepassword 特性,以包含要为集群设置的 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 服务器,您可以修改配置文件中的 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.