我是库伯内特斯和GCP的新手。我正试图在当地部署。我有一个图片,它是在一个私人存储库在谷歌注册表。
我能够在GCP集群中部署,但在本地,当我尝试应用部署时,我得到了ErrImagePull。
我尝试了以下步骤
Viewer的Service Account,并下载了json文件使用以下命令openssl base64 -in file.json -out encodedfile.json对文件进行
.dockerconfigjson上kubernetes.io/dockerconfigjson:apiVersion: v1种类:机密元数据:名称: gcr-json-key命名空间:开发数据:.dockerconfigjson: xxxxx类型:v1
我添加的部署中的
imagePullSecrets:
- name: gcr-json-key我也收到了同样的错误,它无法从私有的google注册表中提取到我的本地机器。
更新1
我用以下命令对json文件进行了编码
base64 -i myorg-8b8eea93246a.json -o encoded-myorg-8b8eea93246a.json然后我检查了这个编码的文件是否有效
cat encoded-myorg-8b8eea93246a.json | docker login -u _json_key_base64 --password-stdin \
https://us-docker.pkg.dev它起了作用
Login Succeeded这是我用来创建秘密的yaml文件
apiVersion: v1
kind: Secret
metadata:
name: gcr-json-key
namespace: development
data:
.dockerconfigjson: <XXXX content of encoded myorg-8b8eea93246a.json file XXXX>
type: kubernetes.io/dockerconfigjson在我的部署中
...
spec:
...
imagePullSecrets:
- name: gcr-json-key
...将创建部署,但不提取映像。在kubectl get all中,我可以看到状态ImagePullBackOff
当我对豆荚做描述时
Failed to pull image "gcr.io/xxx/yyy": rpc error: code = Unknown desc = Error response from daemon: unauthorized: You don't have the needed permissions to perform this operation, and you may have invalid credentials.发布于 2020-11-08 05:57:46
你走在正确的道路上。您需要为注册表登录创建秘密。这对我来说很管用:
kubectl create secret docker-registry <secret_name> --docker-server=<your.registry.domain.name> --docker-username=<user> --docker-password=<password> --docker-email=<your_email>然后我用这个秘密来部署:
spec:
replicas: 1
strategy:
type: Recreate
template:
metadata:
creationTimestamp: null
labels:
io.kompose.service: server
spec:
imagePullSecrets:
- name: <secret_name>https://stackoverflow.com/questions/64733546
复制相似问题