轮替服务帐号密钥

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

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

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

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

    Cloud Audit Logs

    集群 Secret 命名空间
    管理 create-config kube-system
    管理 create-config CLUSTER_NAME
    管理 audit-logging-config kube-system
    管理 kube-apiserver CLUSTER_NAME

    用量计量

    集群 Secret 命名空间
    管理 create-config CLUSTER_NAME
    用户 usage-metering-bigquery-service-account-key kube-system

    Stackdriver

    集群 Secret 命名空间
    管理 create-config kube-system
    管理 create-config CLUSTER_NAME
    用户 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 的名称。例如 create-config

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

    kubectl get secret create-config --namespace kube-system \
            --kubeconfig KUBECONFIG -o json > backup/admin-create-config-kube-system.json
    
    kubectl get secret create-config --namespace NAMESPACE \
            --kubeconfig KUBECONFIG -o json > backup/admin-create-config-NAMESPACE.json
    
    kubectl get secret audit-logging-config --namespace kube-system \
            --kubeconfig KUBECONFIG -o json > backup/audit-logging-config-kube-system.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. 在管理员集群和用户集群的 config yaml 文件中,找到 cloudauditloggingusagemeteringstackdriver 部分。

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

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

    gkectl update credentials COMPONENT --admin-cluster --kubeconfig \
      KUBECONFIG --config ADMIN_CONFIG
    
    gkectl update credentials COMPONENT --kubeconfig \
       KUBECONFIG --config USER_CONFIG

    其中:

    • KUBECONFIG 是管理员集群的 kubeconfig 文件的路径。
    • ADMIN_CONFIG 是管理员集群的配置文件的路径。
    • USER_CONFIG 是用户集群的配置文件的路径。
    • COMPONENTcloudauditloggingusagemeteringstackdriver