DO Kubernetes 集群 + GCP 容器注册中心
DO Kubernetes Cluster + GCP Container Registry
我在 Digital Ocean 中有一个 Kubernetes 集群,我想从 GCP 中的私有存储库中拉取图像。
我试图创建一个秘密,使我能够提取本文后的图像 https://blog.container-solutions.com/using-google-container-registry-with-kubernetes
基本上,这些是步骤
- 在 GCP 帐户中,使用 JSON 凭证创建服务帐户密钥
- 执行
kubectl create secret docker-registry gcr-json-key \
--docker-server=gcr.io \
--docker-username=_json_key \
--docker-password="$(cat ~/json-key-file.json)" \
--docker-email=any@valid.email
- 在部署 yaml 中引用秘密
imagePullSecrets:
- name: gcr-json-key
我不明白为什么我得到 403。如果在 google 云之外使用注册表有一些限制,或者如果我错过了一些配置。
Failed to pull image "gcr.io/myapp/backendnodeapi:latest": rpc error: code = Unknown desc = failed to pull and unpack image "gcr.io/myapp/backendnodeapi:latest": failed to resolve reference "gcr.io/myapp/backendnodeapi:latest": unexpected status code [manifests latest]: 403 Forbidden
JSON 字符串不是密码。
文档建议激活服务帐户:
gcloud auth activate-service-account [USERNAME]@[PROJECT-ID].iam.gserviceaccount.com --key-file=~/service-account.json
或者添加配置到$HOME/.docker/config.json
然后运行 docker-credential-gcr configure-docker
.
Kubernetes 似乎需要 service-account token secret
这需要注释 kubernetes.io/service-account.name
。
确认您已启用 Container Registry API,已安装的 Cloud SDK 和您用于身份验证的服务帐户可以 permissions 访问 Container Registry。
Docker 需要特权访问才能与注册表交互。在 Linux 或 Windows 上,将您用于 运行 Docker 命令的用户添加到 Docker 安全组。
documentation 详细介绍了容器注册表的先决条件。
注意:
确保 kubectl 的版本是 latest version.
我尝试按照您提供的文档进行复制,并且在我这边成功了,因此请确保满足所有先决条件。
我在 Digital Ocean 中有一个 Kubernetes 集群,我想从 GCP 中的私有存储库中拉取图像。
我试图创建一个秘密,使我能够提取本文后的图像 https://blog.container-solutions.com/using-google-container-registry-with-kubernetes
基本上,这些是步骤
- 在 GCP 帐户中,使用 JSON 凭证创建服务帐户密钥
- 执行
kubectl create secret docker-registry gcr-json-key \ --docker-server=gcr.io \ --docker-username=_json_key \ --docker-password="$(cat ~/json-key-file.json)" \ --docker-email=any@valid.email
- 在部署 yaml 中引用秘密
imagePullSecrets: - name: gcr-json-key
我不明白为什么我得到 403。如果在 google 云之外使用注册表有一些限制,或者如果我错过了一些配置。
Failed to pull image "gcr.io/myapp/backendnodeapi:latest": rpc error: code = Unknown desc = failed to pull and unpack image "gcr.io/myapp/backendnodeapi:latest": failed to resolve reference "gcr.io/myapp/backendnodeapi:latest": unexpected status code [manifests latest]: 403 Forbidden
JSON 字符串不是密码。
文档建议激活服务帐户:
gcloud auth activate-service-account [USERNAME]@[PROJECT-ID].iam.gserviceaccount.com --key-file=~/service-account.json
或者添加配置到$HOME/.docker/config.json
然后运行 docker-credential-gcr configure-docker
.
Kubernetes 似乎需要 service-account token secret
这需要注释 kubernetes.io/service-account.name
。
确认您已启用 Container Registry API,已安装的 Cloud SDK 和您用于身份验证的服务帐户可以 permissions 访问 Container Registry。
Docker 需要特权访问才能与注册表交互。在 Linux 或 Windows 上,将您用于 运行 Docker 命令的用户添加到 Docker 安全组。 documentation 详细介绍了容器注册表的先决条件。
注意: 确保 kubectl 的版本是 latest version.
我尝试按照您提供的文档进行复制,并且在我这边成功了,因此请确保满足所有先决条件。