文章目录
- @[toc]
- 基于现有凭据创建 Secret
- 通过命令行创建 Secret
- pod 使用指定 secret 认证私有镜像仓库
文章目录
- @[toc]
- 基于现有凭据创建 Secret
- 通过命令行创建 Secret
- pod 使用指定 secret 认证私有镜像仓库
省流提醒:
- 本次解决的问题是
docker login
可以正常登录,docker pull
也可以正常拉取镜像,只是 k8s 在启动 pod 的时候,没有指定imagePullSecrets
,导致没权限拉取
从私有仓库拉取镜像
基于现有凭据创建 Secret
- 执行过
docker login
命令后,会在~/.docker/config.json
生成凭据文件
参考命令,记得把
<>
去掉
kubectl create secret generic <secret 名字> \-n <namespace 名字> \--from-file=.dockerconfigjson=<path/to/.docker/config.json> \--type=kubernetes.io/dockerconfigjson
通过命令行创建 Secret
如果有多个私有仓库,这种方式创建的 Secret 更好用一点
kubectl create secret docker-registry <secret 名字> \-n <namespace 名字> \--docker-server=<your-registry-server> \--docker-username=<your-name> \--docker-password=<your-pword> \--docker-email=<your-email>
--docker-server
是你的私有 Docker 仓库全限定域名(FQDN)- DockerHub 使用
https://index.docker.io/v1/
- DockerHub 使用
--docker-username
是你的 Docker 用户名--docker-password
是你的 Docker 密码--docker-email
是你的 Docker 邮箱
pod 使用指定 secret 认证私有镜像仓库
apiVersion: v1
kind: Pod
metadata:name: private-reg
spec:containers:- name: private-reg-containerimage: <your-private-image>imagePullSecrets:- name: <secret 名字>