Google cloud platform Cloudbuild在运行kubelet cloudbuilder时出现问题
我正在尝试使用Google云提供商CloudBuild将新的更改部署到kubernetes集群。每当我做一些更改时,触发器都会正常工作,并且会启动一个新的构建,但这就是我在使用cloudbuild.yaml时遇到的问题 cloudbuild.yamlGoogle 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
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开头有#是一行注释。