Google cloud platform 使用gsutil从GKE容器复制文件失败,AccessDeniedException:403权限不足
我在Dockerfile中安装了gsutil,如下所示:Google cloud platform 使用gsutil从GKE容器复制文件失败,AccessDeniedException:403权限不足,google-cloud-platform,google-cloud-storage,google-kubernetes-engine,gsutil,Google Cloud Platform,Google Cloud Storage,Google Kubernetes Engine,Gsutil,我在Dockerfile中安装了gsutil,如下所示: FROM postgres RUN apt-get update -y RUN apt-get install -y curl python && curl -sSL https://sdk.cloud.google.com | bash ENV PATH $PATH:/root/google-cloud-sdk/bin 然后将其作为容器部署在以下Pod中: apiVersion: v1 kind: Pod metada
FROM postgres
RUN apt-get update -y
RUN apt-get install -y curl python && curl -sSL https://sdk.cloud.google.com | bash
ENV PATH $PATH:/root/google-cloud-sdk/bin
然后将其作为容器部署在以下Pod中:
apiVersion: v1
kind: Pod
metadata:
name: postgresql-backup
spec:
containers:
- name: web
image: xxx/posgresql-backup:latest
ports:
- name: web
containerPort: 80
protocol: TCP
command: ['sh', '-c', 'echo The app is running! && sleep 36000']
注意,在我的示例中,容器是在默认服务帐户下执行的:111111111-compute@developer.gserviceaccount.com
我之前创建了一个名为:posgresql backup的bucket
在执行容器中打开终端时:kubectl exec-it xxx--/bin/bash
如果我运行gsutil ls gs://posgresql backup
,它将返回该存储桶中的文件列表:
gs://posgresql-backup/dump1.sql
但是,当我尝试将文件从容器复制到存储桶时gsutil cp myfile.txt gs://posgresql backup
:
AccessDeniedException: 403 Insufficient Permission
在bucket权限中,我将服务帐户添加为Storage Admin和Storage Object Admin,但这没有什么区别
我还缺少什么?问题是GKE节点的默认节点池配置将云存储API设置为只读,因此我必须对其进行自定义:
问题在于GKE节点的默认节点池配置将云存储API设置为只读,因此我必须对其进行自定义: