Google cloud platform Cloudbuild在运行kubelet cloudbuilder时出现问题

Google cloud platform Cloudbuild在运行kubelet cloudbuilder时出现问题,google-cloud-platform,google-cloud-build,Google Cloud Platform,Google Cloud Build,我正在尝试使用Google云提供商CloudBuild将新的更改部署到kubernetes集群。每当我做一些更改时,触发器都会正常工作,并且会启动一个新的构建,但这就是我在使用cloudbuild.yaml时遇到的问题 cloudbuild.yaml steps: #step1 - name: 'gcr.io/cloud-builders/docker' args: [ 'build', '-t', 'gcr.io/$PROJECT_ID/cloudbuildtest-ima

我正在尝试使用Google云提供商CloudBuild将新的更改部署到kubernetes集群。每当我做一些更改时,触发器都会正常工作,并且会启动一个新的构建,但这就是我在使用cloudbuild.yaml时遇到的问题

cloudbuild.yaml

steps:
  #step1      
- name: 'gcr.io/cloud-builders/docker'
  args: [ 'build', '-t', 'gcr.io/$PROJECT_ID/cloudbuildtest-image', '.' ]
  #step 2
- name: 'gcr.io/cloud-builders/docker'
  args: ['push', 'gcr.io/$PROJECT_ID/cloudbuildtest-image']
  #step 3 for testing
  name: 'gcr.io/cloud-builders/kubectl'
  args: ['get', 'pods']
  env:
  - 'CLOUDSDK_COMPUTE_ZONE=us-central1-a'
  - 'CLOUDSDK_CONTAINER_CLUSTER=cloudbuild-test'
  #STEP-4
images:
- 'gcr.io/$PROJECT_ID/cloudbuildtest-image' 
第1步和第2步工作正常,但问题在于第3步,出于测试目的,我只需运行get pods命令来测试它是否工作。这是我在日志中看到的问题

Running: gcloud container clusters get-credentials --project="journeyfoods-io" --zone="us-central1-a" "cloudbuild-test"
Fetching cluster endpoint and auth data.
ERROR: (gcloud.container.clusters.get-credentials) ResponseError: code=403, message=Required "container.clusters.get" permission(s) for "projects/XXXX/zones/us-central1-a/clusters/cloudbuild-test".
它在寻找什么权限?我需要做些什么吗 在运行步骤之前进行身份验证,或者我到底缺少什么


使用
[PROJECT\u NUMBER]@cloudbuild.gserviceaccount.com
服务帐户执行云构建的步骤。从云构建中了解此主题:

启用云构建API时,服务帐户为 自动创建并授予云构建服务帐户角色 为了你的项目。此角色足以完成多项任务, 包括:

  • 从项目的云源存储库获取代码
  • 从项目拥有的任何云存储桶下载文件
  • 在云日志中保存构建日志
  • 将Docker映像推送到容器注册表
  • 从容器注册表中提取基本图像
但是默认情况下,此服务帐户没有特定操作的权限(特别是默认情况下,
container.clusters.get
权限不受限制)。所以你需要一个合适的IAM角色。在您的案例中,
Kubernetes Engine Developer
角色包含
container.clusters.get
权限,如中所示。

我可以看到您的cloudbuild.yaml文件中以步骤3的名称缺少“-”。那是你复印时的打字错误吗?如果没有,请添加。@siamsot开头有#是一行注释。