docker - kubernetes 无法从 docker-hub 的私有存储库中提取大图像
问题描述
最近我开始在我的 kubernetes 集群中使用 docker-hub 中的私有存储库。
我的 kubernetes 集群版本是 1.9.2 ( kubelet , kubeadm , kubectl )
我的 kubernetes 集群有大约 12 个部署,它们都在默认命名空间中。
我还创建了一个 docker 注册表秘密:
kubectl create secret docker-registry registrykey ..
我将它修补到默认命名空间中:
kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "registrykey"}]}'
我所有的部署都运行良好,除了一个不断给我 ImagePullBackOff
当我试图描述它时,我得到:
Normal BackOff 29m (x6112 over 1d) kubelet, node1 Back-off pulling image "registry.hub.docker.com/my-image"
Warning Failed 19m (x6155 over 1d) kubelet, node1 Error: ImagePullBackOff
Warning Failed 14m (x287 over 1d) kubelet, node1 Failed to pull image "registry.hub.docker.com/my-image": rpc error: code = Unknown desc = Error response from daemon: repository registry.hub.docker.com/my-image not found: does not exist or no pull access
Normal Pulling 3m (x289 over 1d) kubelet, node1 pulling image "registry.hub.docker.com/my-image"
我尝试向 kubelet 服务添加以下标志:
--image-pull-progress-deadline=5m --serialize-image-pulls=false
我还添加了 docker 服务以下标志:
--max-concurrent-downloads=10
拉仍然失败。
图像大小为 1.56 giga。
如果我通过 docker pull 手动拉它并更改imagePullPolicy: Always
为imagePullPolicy: IfNotPresent
,它可以工作。因为我不想在每次部署时都手动执行此操作。
任何想法为什么会发生以及如何解决它都将受到欢迎。
非常感谢
编辑:添加服务帐户 yaml:
apiVersion: v1
imagePullSecrets:
- name: registrykey
kind: ServiceAccount
metadata:
creationTimestamp: 2018-09-04T06:55:04Z
name: default
namespace: default
resourceVersion: "11698"
selfLink: /api/v1/namespaces/default/serviceaccounts/default
uid: 73c55e52-b00f-11e8-afec-0050569e63f0
secrets:
- name: default-token-ptx9l
和秘密:
apiVersion: v1
data:
.dockerconfigjson: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
kind: Secret
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"v1","data":{".dockerconfigjson":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"},"kind":"Secret","metadata":{"annotations":{},"creationTimestamp":null,"name":"registrykey","namespace":"default"},"type":"kubernetes.io/dockerconfigjson"}
creationTimestamp: 2018-09-04T08:41:40Z
name: registrykey
namespace: default
resourceVersion: "11689"
selfLink: /api/v1/namespaces/default/secrets/registrykey
uid: 57ebf775-b01e-11e8-a16b-0050569e63f0
type: kubernetes.io/dockerconfigjson
我正在使用 docker hub 私有存储库
我还是很绝望。有没有人遇到过这种行为?
解决方案
推荐阅读
- python-3.x - 胶水python shell作业无法导入s3fs
- python - 使用循环或堆栈/队列按顺序比较列表中的元素
- docker - 有没有办法在 Docker 容器中将正确的远程地址传递给 Nginx
- javascript - 如何避免在多选jquery中使用相同的值
- rust - 如何计算给定 BLS 公钥和消息的椭圆曲线配对函数
- binary - 如何对补数进行算术运算并纠正溢出?
- javascript - 如何检测客户端的网络浏览器是 Vivaldi?
- html - 我网页上的 React 图像没有响应 css
- spring-cloud-vault-config - 使用 Spring Cloud Vault 连接到多个命名空间
- javascript - Javascript 通过前端将音频录制到 BLOB 到 MP3 文件对象