为了能使用阿里云的私有镜像库,需要创建imagePullSecret

https://blog.51cto.com/lvnian/2314456?source=dra

kubernetes 拉取私有镜像的测试

 

  1. 首先修改docker/etc/docker/daemon.json文件

在所有的node节点中修改docker的/etc/docker/daemon.json文件修改insecure-registries参数。必须包含上面上面私有仓库的地址:

vim /etc/docker/daemon.json

 

如下:

{

"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"],

"insecure-registries":["ccr.ccs.tencentyun.com"]

}

 

  1. 重启docker 服务

 

使用文件生成secret

  1. 生成~/.docker/config.json配置文件

3.1 docker login测试一下, 如下内容,看能否拉取镜像成功.

 

登录腾讯云镜像仓库

docker login ccr.ccs.tencentyun.com --username=1000253089754995

 

密码:  h*****ry***

 

拉取镜像试试:

docker pull ccr.ccs.tencentyun.com/as-boot/as-boot-nacos:v8.3.2.0

 

成功拉取

 

密码没问题

 

3.2 获取base64 -w 0 ~/.docker/config.json密文

 

base64 -w 0 ~/.docker/config.json

ewoJImF1dGhjNWdlpHVnVaenB5Wld4aFFFeFdUa2xCVGtBeU1ERTMiCgkJfSwKCQkidXJlZy5rOHMueXVud2VpLnJlbGEubWUiOiB7CgkJCSJhdXRoIjogIloyRnZaM1Z2WkdWdVp6cHlaV3hoUUV4V1RrbEJUa0F5TURFMyIKCQl9Cgl9LAoJIkh0dHBIZWFkZXJzIjogewoJCSJVc2VyLUFnZW50IjogIkRvY2tlci1DbGllbnQvMTguMDYuMS1jZSAobGludXgpIgoJfQp9[root@ip-172-31-10-110 ~]#

 

 

  1. 创建Secret

yaml文件中的 metadata: name , 这个name是创建的imagePullSecretname, 创建Deployment的时候, 就是用这个name.

 

vim secret.yaml

 

apiVersion: v1

kind: Secret

metadata:

  name: regsecret

  namespace: default

data:

    .dockerconfigjson: ewoJImF1dGhjNWdlpHVnVaenB5Wld4aFFFeFdUa2xCVGtBeU1ERTMiCgkJfSwKCQkidXJlZy5rOHMueXVud2VpLnJlbGEubWUiOiB7CgkJCSJhdXRoIjogIloyRnZaM1Z2WkdWdVp6cHlaV3hoUUV4V1RrbEJUa0F5TURFMyIKCQl9Cgl9LAoJIkh0dHBIZWFkZXJzIjogewoJCSJVc2VyLUFnZW50IjogIkRvY2tlci1DbGllbnQvMTguMDYuMS1jZSAobGludXgpIgoJfQp9

type: kubernetes.io/dockerconfigjson

 

 

kubectl create -f secret.yaml

 

kubectl describe Secret regsecret

 

 

方式二:

使用命令创建Secret

 

之前没有成功,这种方式可以保留

kubectl create secret docker-registry regsecret --docker-server=ureg.k8s.test.com --docker-username=lvnian --docker-password=LVNIAN@2017 --docker-email=lvnian@rela.me

 

 

regsecret: 指定密钥的键名称, 可自行定义

--docker-server: 指定docker仓库地址

--docker-username: 指定docker仓库账号

--docker-password: 指定docker仓库密码

--docker-email: 指定邮件地址

-n : 命名空间,在那个命名空间创建,就只能在那个命名空间使用这个secret