使用docker从私有仓库拉取经销,可以使用docker login [私有仓库地址] 然后输入用户名和密码登录后就可以拉取镜像了,但如果使用k8s时,node 节点过多,难道需要跑到每个node节点去执行一次登录么?当然不是.这里就牵扯到k8s中的一个secret的东西.
Secret 有三种类型:
- Service Account :用来访问 Kubernetes API,由 Kubernetes 自动创建,并且会自动挂载到 Pod 的/run/secrets/kubernetes.io/serviceaccount 目录中
- Opaque :base64编码格式的Secret,用来存储密码、密钥等
- kubernetes.io/dockerconfigjson :用来存储私有 docker registry 的认证信息
这里主要介绍第三种kubernetes.io/dockerconfigjson 如何使用.当使用k8s命令启动pod时,出现了
rpc error: code = Unknown desc = Error response from daemon: pull access denied for 222.212.85.199:12375/gzlt/gzlt, repository does not exist or may require 'docker login'
rpc error: code = Unknown desc = Error response from daemon: pull access denied for 222.212.85.199:12375/gzlt/gzlt, repository does not exist or may require 'docker login'