省流提醒:
- 本次解决的问题是
docker login
可以正常登录,docker pull
也可以正常拉取镜像,只是 k8s 在启动 pod 的时候,没有指定imagePullSecrets
,导致没权限拉取
从私有仓库拉取镜像
基于现有凭据创建 Secret
- 执行过
docker login
命令后,会在~/.docker/config.json
生成凭据文件
参考命令,记得把
<>
去掉文章来源:https://www.toymoban.com/news/detail-729491.html
kubectl create secret generic <secret 名字> \
-n <namespace 名字> \
--from-file=.dockerconfigjson=<path/to/.docker/config.json> \
--type=kubernetes.io/dockerconfigjson
通过命令行创建 Secret
如果有多个私有仓库,这种方式创建的 Secret 更好用一点文章来源地址https://www.toymoban.com/news/detail-729491.html
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-container
image: <your-private-image>
imagePullSecrets:
- name: <secret 名字>
到了这里,关于k8s 拉取镜像报错 no basic auth credentials的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!