【发布时间】:2021-02-15 18:55:31
【问题描述】:
我已经设置了一个私有容器注册表,它已成功与 bitbucket 集成。但是,我无法从我的 GKE 集群中提取图像。
我创建了一个角色为“Project Viewer”的服务帐户,以及该帐户的 json 密钥。然后我在运行的集群/命名空间中创建了秘密
kubectl create secret docker-registry gcr-json-key \
--docker-server=gcr.io \
--docker-username=_json_key \
--docker-password="$(cat ~/code/bitbucket/miappsrl/miappnodeapi/secrets/registry/miapp-staging-e94050365be1.json)" \
--docker-email=agusmiappgcp@gmail.com
在我添加的部署文件中
...
imagePullSecrets:
- name: gcr-json-key
...
但是当我应用部署时,我得到了
ImagePullBackOff
当我执行kubectl describe pod <pod_name> 时,我看到了
Failed to pull image "gcr.io/miapp-staging/miappnodeapi": rpc error: code = Unknown desc = Error response from daemon: Get https://gcr.io/v2/: dial tcp: lookup gcr.io on 169.254.169.254:53: no such host
我无法意识到我缺少什么,我知道它可以解析集群内的 dns,但不确定我应该添加什么
【问题讨论】:
-
是私有集群?你有网络政策吗?或任何安全配置?
-
@DavidC 感谢您的评论,我想我可能缺少在集群中设置网络。
-
您能分享一下集群网络设置吗?比如它是一个私有集群还是你设置网络策略或 VPC 服务控制?查看下关于Setting up Container Registry or Artifact Registry for GKE private clusters的信息可能是这样的。
-
@DavidC 我认为你是对的,问题在于它是一个私有集群。我删除了,创建了一个新的(公共)并且我能够提取图像。下次创建私有集群时,我需要设置网络以使用容器注册表。谢谢
-
我会在你的帖子上写一个答案(它不同于评论)以帮助其他用户解决同样的问题,如果这些信息可以帮助你解决你的问题,请随时投票给答案。
标签: kubernetes google-kubernetes-engine google-container-registry