使用私有镜像仓库更新 Connect Agent

本主题介绍如何使用私有 Docker 镜像仓库更新 Connect Agent。有关 Connect 的详细信息,请参阅产品的文档

概览

如果您选择向 Google Cloud Console 注册用户集群,则系统会在该集群中创建一个名为 Connect Agent 的 Kubernetes Deployment。Connect Agent 会在集群和 Google Cloud 控制台之间建立长期有效的加密连接。

Google 有时会更新 Connect Agent。如果您对集群使用私有注册表,请按照以下说明更新 Connect Agent。

拉取更新后的 Connect 映像

gcr.io 拉取 Connect Agent 映像并将其推入注册表中:

docker pull gcr.io/gkeconnect/gkeconnect-gce:release
docker tag gcr.io/gkeconnect/gkeconnect-gce:release \
    [PRIVATE_REGISTRY_HOST]/gkeconnect/gkeconnect-gce:release
docker push [PRIVATE_REGISTRY_HOST]/gkeconnect/gkeconnect-gce:release

其中,[PRIVATE_REGISTRY_HOST] 是您的私有 Docker 镜像仓库的主机名或 IP 地址。

更新用户集群注册

更新用户集群向 Google Cloud 控制台的注册:

gcloud alpha container hub register-cluster [USER_CLUSTER_NAME] \
  --context=[CLUSTER_CONTEXT] \
  --service-account-key-file=[CONNECT_SA_KEY_FILE] \
  --kubeconfig-file=[KUBECONFIG_PATH] \
  --docker-image=[DOCKER_IMAGE] \
  --docker-credential-file=[DOCKER_CONFIG_PATH] \
  --project=[PROJECT_ID]

其中:

  • [USER_CLUSTER_NAME] 是 Google Cloud 控制台中显示的已注册用户集群的名称。
  • [CLUSTER_CONTEXT] 是 kubeconfig 文件中显示的集群上下文。要获取此值,请运行 kubectl config current-context
  • [CONNECT_SA_KEY_FILE] 是连接服务帐号的 JSON 密钥文件的路径。
  • [KUBECONFIG_PATH] 是用户集群的 kubeconfig 的路径。
  • [DOCKER_IMAGE] 是私有镜像仓库中标记的映像路径(例如 example.com/gkeconnect/gkeconnect-gce:release)。
  • [DOCKER_CONFIG_PATH] 是 JSON Docker 配置文件的路径。

    您在上一部分 docker 命令的 docker 命令中使用的 config.json 文件可能有其他不必要的凭据。建议您从集群中提取凭据,以确保您不会在无意中将其他凭据添加到您的集群中:

    kubectl get secret regcred \
    -o jsonpath='{.data.\.dockerconfigjson}' -n gke-connect | \
    base64 -d \  # On BSD systems (like macOS), use base64 -D
    >private_registry_config.json
    

    将所创建文件的文件路径作为 --docker-credential-file 标志的值传递,以取代上述 [DOCKER_CONFIG_PATH]

  • [PROJECT_ID] 是用户集群向其注册的项目的 项目 ID。如需了解如何列出组织中的所有项目,请参阅列出项目