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