我正在尝试使用kubernetes设置GCR
获取错误: ErrImagePull无法拉取镜像"eu.gcr.io/xxx/nodejs":rpc错误:代码=未知描述=来自守护进程的错误响应:拉取访问被拒绝eu.gcr.io/xxx/nodejs,存储库不存在或可能需要'docker login‘
尽管我已经在服务帐户中正确设置了密码,并在部署规范中添加了镜像拉取密码
deployment.yml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.18.0 (06a2e56)
creationTimestamp: null
labels:
io.kompose.service: nodejs
name: nodejs
spec:
replicas: 1
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
io.kompose.service: nodejs
spec:
containers:
- env:
- name: MONGO_DB
valueFrom:
configMapKeyRef:
key: MONGO_DB
name: nodejs-env
- name: MONGO_HOSTNAME
value: db
- name: MONGO_PASSWORD
valueFrom:
secretKeyRef:
name: mongo-secret
key: MONGO_PASSWORD
- name: MONGO_PORT
valueFrom:
configMapKeyRef:
key: MONGO_PORT
name: nodejs-env
- name: MONGO_USERNAME
valueFrom:
secretKeyRef:
name: mongo-secret
key: MONGO_USERNAME
image: "eu.gcr.io/xxx/nodejs"
name: nodejs
imagePullPolicy: Always
ports:
- containerPort: 8080
resources: {}
imagePullSecrets:
- name: gcr-json-key
initContainers:
- name: init-db
image: busybox
command: ['sh', '-c', 'until nc -z db:27017; do echo waiting for db; sleep 2; done;']
restartPolicy: Always
status: {}用它来添加秘密,它说创建
kubectl create secret docker-registry gcr-json-key --docker-server=eu.gcr.io --docker-username=_json_key --docker-password="$(cat mycreds.json)" --docker-email=mygcpemail@gmail.com我怎么调试这个,欢迎任何想法!
发布于 2019-10-03 06:21:03
发布于 2019-10-08 06:57:17
如果用于推送或拉取镜像的虚拟机实例与容器注册表存储桶在同一个Google Cloud Platform项目中,则Compute Engine默认服务账号将被配置相应的权限来推送或拉取镜像。
如果VM实例位于不同的项目中,或者如果该实例使用不同的服务帐户,则必须配置对存储库使用的存储桶的访问权限。
默认情况下,Compute Engine VM为存储存储桶配置了只读访问范围。要推送私有Docker镜像,您的实例必须按照访问范围中的说明配置读写存储访问范围。请使用1作为进一步的参考:
请以2格式关注下表
操作权限角色角色标题
拉入(只读)- storage.objects.get角色/存储。对象查看器存储对象查看器storage.objects.list
此外,如果你在任何步骤中遇到问题,如果有任何错误代码,你可以分享。
https://stackoverflow.com/questions/58206927
复制相似问题