【问题标题】:gcloud credentials using wrong cluster使用错误集群的 gcloud 凭据
【发布时间】:2019-02-20 01:25:05
【问题描述】:

我正在使用容器构建器来处理 cloudbuild.yaml,我的问题是使用了不存在的旧集群名称。我已尝试删除我的服务密钥并再次创建它,但无济于事。

Starting Step #3
Step #3: Already have image (with digest): gcr.io/cloud-builders/kubectl
Step #3: Running: gcloud container clusters get-credentials --project="amx-instance-1" --zone="australia-southeast1-a" "amx-cluster-au9"
Step #3: Fetching cluster endpoint and auth data.
Step #3: ERROR: (gcloud.container.clusters.get-credentials) ResponseError: code=403, message=Required "container.clusters.get" permission(s) for "projects/amx-instance-1/zones/australia-southeast1-a/clusters/amx-cluster-au9". See https://cloud.google.com/kubernetes-engine/docs/troubleshooting#gke_service_account_deleted for more info.

集群名称amx-cluster-au9 是一个不再存在的旧集群。是什么导致了这个问题,我该如何解决?

编辑:cloudbuild.yaml 文件

steps:
- name: gcr.io/cloud-builders/wget
  args: [
    "-O",
    "go-cloud-debug",
    "https://storage.googleapis.com/cloud-debugger/compute-go/go-cloud-debug"
  ]
- name: 'gcr.io/cloud-builders/go'
  args: ["install", "-gcflags=-N", "-gcflags=-l", ".", ]
  env: ['PROJECT_ROOT=github.com/amalexpress/amx-server', 'CGO_ENABLED=0', 'GOOS=linux']
- name: 'gcr.io/cloud-builders/docker'
  args: ['build', '--tag=gcr.io/$PROJECT_ID/amx-img:$SHORT_SHA', '.']
- name: 'gcr.io/cloud-builders/kubectl'
  args:
  - set
  - image
  - deployment
  - echoserver
  - echoserver=gcr.io/$PROJECT_ID/amx-img:$SHORT_SHA
  env:
  - 'CLOUDSDK_COMPUTE_ZONE=australia-southeast1-a'
  - 'CLOUDSDK_CONTAINER_CLUSTER=amx-cluster-au-2'
images: ['gcr.io/$PROJECT_ID/amx-img:$SHORT_SHA']

基本上我不知道为什么它一直引用我已删除且不再使用的集群。

如果有帮助的话,这里是logs

【问题讨论】:

  • gcloud config get-value core/project 的值是多少?如果这也涉及您删除的项目,请取消设置值 (gcloud config unset core/project),然后重试。
  • 我不确定您是否为此使用了变量,但检查此substituting variables values 并在描述中确认一切看起来都很好。
  • @DazWilkin 感谢您的建议,我没有这样做,但它不起作用。卢克,我没有使用任何替代品。我已经编辑了我的问题以包含我的 cloudbuild.yaml 文件。
  • 我没主意了。我复制了您的cloudbuild.yaml,它对我来说可以正常工作。您是否已向 Google Cloud 支持提交了工单?
  • 不,我没有,我会这样做的。 DazWilkin,我真的很高兴你能回答,我有另一个具体的问题要问你,这与你的一篇很棒的博客文章(与堆栈驱动程序调试有关)有关。我会在今天晚些时候发布这个问题,所以请留意(我会在这里碰碰)。美好的一天。

标签: gcloud google-kubernetes-engine google-container-builder


【解决方案1】:

已通过删除 Cloud Source Repository 中的存储库解决了该问题。我不知道为什么这解决了这个问题。我应该注意到我删除了 github repo 并重新初始化了它。仍然看起来像一个错误,因为根本没有迹象表明根本原因。此外,虽然上述解决了集群名称问题,但我必须按照说明here 为集群提供适当的角色访问权限:

PROJECT="$(gcloud projects describe \
    $(gcloud config get-value core/project -q) --format='get(projectNumber)')"

gcloud projects add-iam-policy-binding $PROJECT \
    --member=serviceAccount:$PROJECT@cloudbuild.gserviceaccount.com \
    --role=roles/container.developer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-14
    • 1970-01-01
    • 2016-07-22
    • 2020-05-02
    • 1970-01-01
    • 2021-09-06
    • 2017-01-28
    相关资源
    最近更新 更多