在某些情况下可能会出现此问题,例如:
在你的情况下,我认为这是第二种情况。尽管以下路径适用于这两种情况。
- 使用 GCP 控制台创建具有足够权限的 service_account.json(GCR 需要存储权限,因此请提供“存储管理员”)
Select “API & Services” > “Credentials”Select “Create credentials” > “Services Account Key” > “Create New Services Account”
- 在 Kubernetes 集群中添加 Kubernetes Secret 以访问 GCR
kubectl create secret docker-registry $SECRETNAME \
--docker-server=https://gcr.io \
--docker-username=_json_key \
--docker-email=user@example.com \
--docker-password="$(cat ./service_account.json.json)"
#username should be _json_key
- 以上方法适用于默认服务帐户。但是在 Kufelow 命名空间中修补它
kubectl --namespace=kubeflow create secret docker-registry $SECRETNAME \
--docker-server=https://gcr.io \
--docker-username=_json_key \
--docker-email=user@example.com \
--docker-password="$(cat ./service_account.json.json)"
#username should be _json_key
- 使用相应的服务帐户修补 GCR 机密
# For Kubeflow specific problem path pipeline-runner serviceaccount
kubectl --namespace=kubeflow patch serviceaccount pipeline-runner -p '{"imagePullSecrets": [{"name": "$SECRETNAME"}]}'