kubelet 在 kubernetes v1.7.x版本能pull images 在 kubernetes v1.11.x的kubelet不能pull images的原因记录

本文比较的kubernetes版本是
v1.7.6 v1.11.2
系统

[root@master-47-35 ~]# uname -a
Linux master-47-35 3.10.0-327.4.5.el7.x86_64 #1 SMP Mon Jan 25 22:07:14 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

kuberlet 的数据目录均为/var/lib/kubelet/
v1.7.6

 ls -l /var/lib/kubelet/
total 8
lrwxrwxrwx  1 root root   20 Dec 18  2017 config -> /root/.docker/config
lrwxrwxrwx  1 root root   25 Nov 29  2017 config.json -> /root/.docker/config.json
drwxr-x---  3 root root 4096 Nov 30  2017 plugins
drwxr-x--- 12 root root 4096 Sep 19 15:56 pods

可以看出kubelet 把docker的登录信息ls 过来了,所以只要用docker registry 的admin用户 docker login之后就可以拉取docker registry上所有的镜像

然而v1.11.2 确不是这样子的

v1.11.2

[root@master-47-35 ~]# ls -l /var/lib/kubelet/
total 20
-rw-r--r--  1 root root   40 Aug 24 12:54 cpu_manager_state
drwxr-xr-x  2 root root 4096 Sep 18 15:05 device-plugins
drwx------  2 root root 4096 Aug 24 12:56 plugin-containers
drwxr-x---  4 root root 4096 Sep 11 17:19 plugins
drwxr-x--- 17 root root 4096 Sep 18 15:05 pods

所以用docker registry 的admin用户 docker login之后也不可以拉取docker registry上所有的镜像,
解决的办法 需要在相关的对象加上imagePullSecrets:- name: registrysecret-admin,
然后在所有的空间加上secret,secret的内容 以及格式为

[root@master-47-35 ~]# kubectl get secret -n demo registrysecret-admin -oyaml 
apiVersion: v1
data:
  .dockercfg: base64 admin adminpassword
kind: Secret
metadata:
  creationTimestamp: 2018-09-04T13:31:02Z
  name: registrysecret-admin
  namespace: demo
type: kubernetes.io/dockercfg

相关的kubernetes代码 k8s.io/kubernetes/vendor/k8s.io/api/core/v1/types.go
00

本文只是提供参考,请各位根据自己的环境具体分析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值