Minikube启用registry addon后Pod拉取镜像返回HTTP响应HTTPS客户端错误
根因说明
报错是Minikube集群节点的Docker daemon未正确信任HTTP类型的私有镜像仓库,默认使用HTTPS协议发起拉取请求,和仓库提供的HTTP服务不匹配导致。
解决步骤
- 修正Minikube启动参数格式
你之前使用的启动命令中包含全角破折号和全角引号,参数无法被Minikube正确识别,需要使用半角符号重新创建集群:
minikube start --nodes 3 --insecure-registry="192.168.99.0/24"
如果不想重建现有集群,可以逐台登录所有Minikube节点手动修改配置:
# 依次登录所有节点,控制平面节点名为minikube, worker节点名为minikube-m02、minikube-m03 minikube ssh -n <节点名称> # 编辑Docker配置文件 sudo vi /etc/docker/daemon.json
在配置文件中添加如下内容:
{ "insecure-registries": ["192.168.99.0/24"] }
保存后重启Docker服务生效:
sudo systemctl restart docker
- 验证仓库连通性
登录任意worker节点执行如下命令,确认仓库可正常访问:
curl http://192.168.99.100:5000/v2/_catalog
返回内容包含{"repositories":["myapp"]}即为正常。
3. (可选)使用集群内部域名规避配置
Minikube的registry addon启用后,集群内部默认配置了域名registry.k8s.local指向内部仓库服务,你可以重新给镜像打标签并推送:
docker tag docker.io/library/myapp:v1 registry.k8s.local/myapp:v1 docker push registry.k8s.local/myapp:v1
之后修改Pod的镜像地址为registry.k8s.local/myapp:v1即可拉取,无需额外配置insecure registry参数。
内容的提问来源于stack exchange,提问作者cjt
相关产品推荐
相关产品推荐

