为管理员集群配置准备好的凭据

本文档介绍如何在 GKE on VMware 中为管理员集群配置准备好的凭据。

有了准备好的凭据,您就可以将管理员集群的凭据存储在管理员集群内的 Secret 中。由于您无需在管理员工作站上保留密码和服务帐号密钥,因此具备安全性。

过程概览

  1. 填写 Secret 配置文件。

  2. 在管理员集群配置文件中,将“enabled”设为 true。

  3. 运行:gkectl prepare

  4. 创建管理员集群。

填写 Secret 配置文件

为 Secret 配置文件生成模板。

gkectl create-config secrets

上述命令会生成一个名为 secrets.yaml 的文件。如果您愿意,可以更改此文件的名称和位置。

阅读 Secret 配置文件文档,熟悉配置文件。您可能希望在单独的标签页或窗口中打开此文档。

下面是一个 Secret 配置文件示例。一个 Secret 组包含 vCenter 凭据的值和四个服务帐号密钥:

apiVersion: v1
kind: ClusterSecrets
secretGroups:
- secrets
  vCenter:
    username: "my-vcenter-account"
      password: "U$icUKEW#INE"
    componentAccessServiceAccount:
      serviceAccountKeyPath: "my-key-folder/component-access-key.json"
    registerServiceAccount:
      serviceAccountKeyPath: "my-key-folder/connect-register-key.json"
    stackdriverServiceAccount:
      serviceAccountKeyPath: "my-key-folder/log-mon-key.json"
    cloudAuditLoggingServiceAccount:
      serviceAccountKeyPath: "my-key-folder/audit-log-key.json"

管理员集群配置文件

按照创建管理员集群中的说明创建管理员集群配置文件。

在管理员集群配置文件中,将 preparedSecrets.enabled 设置为 true

preparedsecrets:
  enabled: true

在管理员集群配置文件中,请勿为以下字段指定值。不需要这些字段,因为 GKE on VMware 将从您准备好的 Secret 中获取凭据和密钥。

  • vCenter.credentials.fileRef.path
  • componentAccessServiceAccountKeyPath
  • loadBalancer.f5BigIP.credentials.fileRef.path
  • gkeConnect.registerServiceAccountKeyPath
  • stackdriver.serviceAccountKeyPath
  • cloudAuditLogging.serviceAccountKeyPath
  • privateRegistry.credentials.fileRef.path

初始化环境

将操作系统映像导入 vSphere,并将容器映像推送到私有注册表(如果已指定):

gkectl prepare --config ADMIN_CLUSTER_CONFIG --secret-config SECRETS_CONFIG

替换以下内容:

  • ADMIN_CLUSTER_CONFIG:管理员集群配置文件的路径

  • SECRETS_CONFIG:Secret 配置文件的路径

创建管理员集群

创建管理员集群:

gkectl create admin --config ADMIN_CLUSTER_CONFIG --secret-config SECRETS_CONFIG

替换以下内容:

  • ADMIN_CLUSTER_CONFIG:管理员集群配置文件的路径

  • SECRETS_CONFIG:Secret 配置文件的路径

轮替凭据

如需轮替凭据,您需要 Secret 配置文件。您可以采用两种方法:

  • 运行 gkectl create-config secrets 以生成新的 Secrets 配置文件。使用新的服务帐号密钥填充该文件。

  • 从管理员集群生成 Secrets 配置文件。然后将选定的服务帐号密钥替换为新密钥。

    如需从管理员集群生成 Secrets 配置文件,请执行以下操作:

    gkectl get-config admin --export-secrets-config \
      --bundle-path BUNDLE \
      --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    替换以下内容:

    • BUNDLE:GKE on VMware 软件包文件的路径

    • ADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径

轮替凭据:

gkectl update credentials CREDENTIAL_TYPE \
    --config ADMIN_CLUSTER_CONFIG \
    --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
    --secret-config SECRETS_CONFIG \
    --admin-cluster

替换以下内容:

  • CREDENTIAL_TYPE:以下值之一:vsphere、f5bigip、privateregistry、componentaccess、register、stackdriver、cloudauditlogging。

  • ADMIN_CLUSTER_CONFIG:管理员集群配置文件的路径

  • ADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径

  • SECRETS_CONFIG:Secret 配置文件的路径

更新

如需更新使用准备好的凭据的管理员集群,在许多情况下,您都可以按照更新集群中所述的说明进行操作。

但是,如果您想在更新过程中启用 Cloud Logging 和 Cloud MonitoringCloud Audit Logs,请按以下步骤操作:

  1. 生成 Secrets 配置文件

  2. 在您的 Secret 配置文件中,为 stackdriverServiceAccount.serviceAccountKeyPath 和/或 cloudAuditLoggingServiceAccount.serviceAccountKeyPath 提供值。

  3. 更新集群:

    gkectl update admin --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
      --config ADMIN_CLUSTER_CONFIG \
      --secret-config SECRETS_CONFIG