本文档介绍了如何在 Google Distributed Cloud 中为管理员集群配置准备好的凭据。
有了准备好的凭据,您就可以将管理员集群的凭据存储在管理员集群内的 Secret 中。这样做可以提供安全保障,因为无需在管理员工作站上保留密码和服务账号密钥。
请注意高级集群的以下限制:
- 版本 1.31:高级集群不支持准备好的凭证。
- 版本 1.32 及更高版本:高级集群支持准备好的凭证。
过程概览
- 填写 Secret 配置文件。 
- 在管理员集群配置文件中,将 enabled 设置为 true。 
- 运行 - gkectl prepare
- 创建管理员集群。 
填写 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
在管理员集群配置文件中,请勿为以下字段指定值。这些字段不是必需字段,因为 Google Distributed Cloud 会从您准备好的 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以生成新的 Secret 配置文件。使用新的服务账号密钥填充该文件。
- 从管理员集群生成 Secret 配置文件。然后将选定的服务账号密钥替换为新密钥。 - 如需从管理员集群生成 Secret 配置文件,请运行以下命令: - gkectl get-config admin --export-secrets-config \ --bundle-path BUNDLE \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG - 请替换以下内容: - BUNDLE:Google Distributed Cloud 软件包文件的路径 
- 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 Monitoring 或 Cloud Audit Logs,请按以下步骤操作:
- 生成 Secret 配置文件。 
- 在 Secret 配置文件中,为 - stackdriverServiceAccount.serviceAccountKeyPath和- cloudAuditLoggingServiceAccount.serviceAccountKeyPath提供值,或者为两者提供值。
- 更新集群: - gkectl update admin --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config ADMIN_CLUSTER_CONFIG \ --secret-config SECRETS_CONFIG