轮替服务账号密钥

本页面介绍了如何使用 gkectl 为 VMware 上的 Anthos 集群 (GKE On-Prem) 的 Cloud Audit Logs、用量计量和 Stackdriver 组件轮替服务账号密钥。

如需轮替您的服务账号密钥,请执行以下操作:

  1. 创建用于存储当前 Secret 备份的目录:

    mkdir backup
  2. 请注意相关组件的以下信息:

    Cloud Audit Logs

    集群 Secret 命名空间
    管理 管理员集群凭据 kube-system
    管理 user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt
    管理 kube-apiserver CLUSTER_NAME

    用量计量

    集群 Secret 命名空间
    管理 user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt
    用户 usage-metering-bigquery-service-account-key kube-system

    Stackdriver

    集群 Secret 命名空间
    管理 管理员集群凭据 kube-system
    管理 user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt
    用户 google-cloud-credentials kube-system
    用户 stackdriver-service-account-key knative-serving
  3. 使用以下命令为每个 Secret 创建备份:

    kubectl get secret SECRET --namespace NAMESPACE \
        --kubeconfig KUBECONFIG -o json > backup/SECRET-NAMESPACE.json

    替换以下内容:

    • NAMESPACE:Secret 所在的命名空间。例如 kube-system
    • KUBECONFIG:管理员集群或用户集群的 kubeconfig 文件的路径。
    • SECRET:Secret 的名称。例如 admin-cluster-creds

    例如,为 Cloud Audit Logs 组件运行以下命令:

    kubectl get secret admin-cluster-creds --namespace kube-system \
            --kubeconfig KUBECONFIG -o json > backup/admin-cluster-creds-kube-system.json
    
    kubectl get secret user-cluster-creds --namespace NAMESPACE \
            --kubeconfig KUBECONFIG -o json > backup/user-cluster-creds-NAMESPACE.json
    
    kubectl get secret kube-apiserver --namespace NAMESPACE \
            --kubeconfig KUBECONFIG -o json > backup/kube-apiserver-NAMESPACE.json
  4. 如需创建新的服务账号密钥文件,请运行以下命令:

    gcloud iam service-accounts keys create NEW_KEY_FILE --iam-account IAM_ACCOUNT

    替换以下内容:

    • NEW_KEY_FILE:新的服务账号密钥文件的名称
    • IAM_ACCOUNTCloud Audit Logs用量计量或 Stackdriver 的服务账号电子邮件地址。
  5. 在管理员集群和用户集群的相应配置文件中,找到 cloudauditloggingusagemeteringstackdriver 部分。

  6. serviceAccountKeyPath 字段替换为您之前创建的 NEW_KEY_FILE

  7. 使用以下命令保存您所做的更改:

    gkectl update credentials COMPONENT --admin-cluster --kubeconfig \
      ADMIN_CLUSTER_KUBECONFIG --config ADMIN_CLUSTER_CONFIG
    
    gkectl update credentials COMPONENT --kubeconfig \
       ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

    替换以下内容:

    • COMPONENTcloudauditloggingusagemeteringstackdriver 之一。
    • ADMIN_CLUSTER_KUBECONFIG:管理员集群的 kubeconfig 文件的路径。
    • ADMIN_CLUSTER_CONFIG:管理员集群配置文件的路径。
    • USER_CLUSTER_CONFIG:用户集群配置文件的路径。