k8s 拉取镜像报错 no basic auth credentials

### 文章目录

  • [@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/
  • --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 名字>
相关推荐
阿里云云原生3 小时前
研发视角的新突破:当 AI Coding 工具集成全域运维诊断,排查线上故障只需 3 分钟
云原生
小猿姐18 小时前
唯品会大规模数据库云原生实践:基于 KubeBlocks 管理数千实例的统一运维之路
运维·elasticsearch·云原生
阿里云云原生1 天前
AgentTeams 和 Claude Tag 都进入群聊模式,是新范式还是新叙事?
云原生·agent
阿里云云原生2 天前
Higress v2.2.3 发布:正式入驻 CNCF Sandbox,AI Gateway 与 Ingress 迁移能力双向加固
云原生
lichenyang4532 天前
Docker 学习笔记(四):Dockerfile,把项目打成自己的镜像
docker·容器
lichenyang4532 天前
Docker 学习笔记(三):Docker 网络、bridge、子网和容器互通
docker·容器
lichenyang4532 天前
Docker 学习笔记(二):docker run 的参数到底在控制什么?
docker·容器
阿里云云原生3 天前
香港站【企业 AI Agent 工程化实战专场】来啦,邀您7月9日见!
云原生·agent
阿里云云原生3 天前
研发域与运维域的“数字握手”:通过 Agentic Skills 实现 DevOps 全链路自动化
云原生
运维开发故事5 天前
基于 Arthas 的多集群在线诊断系统设计与实现
kubernetes