【Kubernetes】镜像拉取密钥 - Docker Registry

当 K8s 遇见私有镜像仓库,如何传递访问凭证?使用 docker-registry Secret 的配置,让你的集群安全、顺畅地拉取私密镜像,一起来看看如何使用吧!

1、私有镜像仓库

  • 当前配置了一个需要身份验证的私有镜像仓库 registry,其中包含 test/httpd 测试镜像
  • 生产部署时可能为 Harbor 等专业的镜像仓库管理系统

2、未配置 Secret

  • 集群环境:Kubernetes 1.35,容器运行时为 Docker
  • Pod 部署失败:镜像拉取异常,因为镜像仓库认证凭据缺失
bash 复制代码
kubectl apply -f test.yaml
kubectl get pod
kubectl describe pod httpd-5974c4f5f6-ps7cl

3、配置 Secret

  • 创建 secret - > docker-registry
bash 复制代码
# 根据镜像仓库实际配置进行修改
kubectl create secret docker-registry test --docker-server=http://x.x.x.x:port --docker-username=<user> --docker-password=<password> -o yaml --dry-run=client > secret.yaml
bash 复制代码
# 也可手动修改 data,使用 base64 加密
# 此处私有镜像仓库的用户名/密码:admin/admin
echo eyJhdXRocyI6eyJodHRwOi8vMTcyLjE2LjEzLjk1OjUwMDAiOnsidXNlcm5hbWUiOiJhZG1pbiIsInBhc3N3b3JkIjoiYWRtaW4iLCJhdXRoIjoiWVdSdGFXNDZZV1J0YVc0PSJ9fX0= |base64 -d
# 返回
{"auths":{"http://172.16.13.95:5000":{"username":"admin","password":"admin","auth":"YWRtaW46YWRtaW4="}}}

echo YWRtaW46YWRtaW4= |base64 -d
# 返回
admin:admin
  • 配置 imagePullSecrets
  • 应用后,可正常拉取镜像

4、常见报错

  • 报错:Failed to pull image "172.16.13.95:5000/test/httpd:2": Error response from daemon: Get "https://172.16.13.95:5000/v2/": http: server gave HTTP response to HTTPS client

  • 原因:上方案例的镜像仓库为 HTTP,Docker 默认要求使用 HTTPS 连接仓库

  • 解决:修改 Docker 守护进程配置后重启

bash 复制代码
# 创建或编辑 Docker 配置文件
vi /etc/docker/daemon.json

# 添加以下内容,根据实际镜像仓库地址修改
{
  "insecure-registries": [
    "172.16.13.95:5000"
  ]
}

# 重新加载配置
systemctl reload docker
# 重启 Docker 服务
systemctl restart docker
# 验证配置
docker info | grep -A 5 "Insecure Registries"
相关推荐
分布式存储与RustFS3 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
玉&心3 天前
通过Arthas在线诊断K8S中的内存及JVM等使用情况
docker·k8s·arthas
xing-xing3 天前
Docker容器中Nginx站点根目录网页配置访问
nginx·docker
赵文宇(温玉)3 天前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher
guo_wen_qiang3 天前
上传本地镜像到harbor中
docker·容器·持续部署
张洛闻Eren3 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
羑悻的小杀马特3 天前
Dockerfile 全景指南:从入门编写dockerfile到生产环境镜像优化实战,一步步带你从啃透制作指令到镜像制作落地!
docker·dockerfile·镜像制作
BianHuanShiZhe3 天前
docker常见命令
docker
正经教主3 天前
【FDE系列】阶段2:Day 43:Docker Compose — 多容器一键编排
人工智能·docker·fde
忆~遂愿3 天前
本地片库怎么在外面打开?Plex + cpolar 搭一套可远程访问的私人影音库
docker·容器