更新集群中的 Connect 代理

本页面介绍如何更新 Connect Agent 的版本,或如何轮替 Connect Agent 服务账号密钥。

Connect Agent 更新

Connect Agent 会定期自动更新,并且在更新时不会中断运行。

但是,您也可以通过注册集群来手动将 Connect Agent 更新为最新版本。gcloud 提取最新推出的 Connect Agent 并在集群中重新安装。

轮替 Connect Agent 服务账号密钥

建议您定期轮替服务账号密钥等长期有效的凭据。如需轮替 Connect Agent 使用的服务账号密钥,请执行以下步骤:

  1. 做好准备:

    PROJECT=[PROJECT_ID]
    NAMESPACE=$(kubectl get ns -o jsonpath={.items..metadata.name} -l hub.gke.io/project)
    SERVICE_ACCOUNT=$(kubectl get secrets -n $NAMESPACE creds-gcp \
    -o jsonpath='{.data.creds-gcp\.json}' |  base64 -d | grep client_email \
    | awk '{print $2}' | tr -d '",')
    OLD_KEY_ID=$(kubectl get secrets -n $NAMESPACE creds-gcp \
    -o jsonpath='{.data.creds-gcp\.json}' |  base64 -d | grep private_key_id \
    | awk '{print $2}' | tr -d '",')
    

    其中,[PROJECT_ID] 是您的项目的唯一 ID。您可以在 Google Cloud 控制台中或者通过运行 gcloud config get-value project 来找到此 ID。

  2. 创建新密钥:

    gcloud iam service-accounts keys create --iam-account=$SERVICE_ACCOUNT creds-gcp.json
    

  3. 覆盖代理中的现有密钥:

    这将使代理使用新密钥重启,然后使用新凭据重新建立隧道。

    kubectl create secret -n $NAMESPACE generic creds-gcp \
    --from-file=./creds-gcp.json --dry-run -o yaml  | kubectl replace -f  -
    
  4. 在代理的 Pod 上检查您的日志以确保它已重新连接:

    kubectl logs -n $NAMESPACE -l app=gke-connect-agent
    

  5. 删除旧密钥:

    gcloud iam service-accounts keys delete --iam-account=$SERVICE_ACCOUNT $OLD_KEY_ID
    

  6. 删除新密钥的本地副本:

    我们建议您不要保留密钥。如果您丢失了密钥并需要重新安装代理,我们建议您轮替密钥。

    shred creds-gcp.json