You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

K3s集群中Docker私有仓库镜像推送失败问题排查求助

K3s集群中Docker私有仓库镜像推送失败问题排查求助

大家好,我遇到了一个Docker私有仓库的问题,想请各位帮忙排查下:

我用K3d搭建了一个K3s集群,现在想在集群内部署Docker私有仓库,但目前没法往里面推送镜像。

环境说明

我的K3s集群可以通过localhost的8090端口访问,我专门创建了一个名为registry的文件夹,里面包含以下几个Kubernetes清单文件来部署仓库:

1. deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
name: registry
namespace: registry
spec:
replicas: 1
selector:
matchLabels:
app: registry
template:
metadata:
labels:
app: registry
spec:
containers:
- name: registry
image: registry:2
ports:
- containerPort: 5000
name: web
protocol: TCP
readinessProbe:
httpGet:
port: web
path: /

2. ingressroute.yaml

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: registry
namespace: registry
spec:
entryPoints:
- web
routes:
- match: Host(`registry.test.local`)
kind: Rule
services:
- name: registry
port: 5000

3. namespace.yaml

apiVersion: v1
kind: Namespace
metadata:
name: registry

4. service.yaml

apiVersion: v1
kind: Service
metadata:
name: registry
namespace: registry
spec:
type: ClusterIP
selector:
app: registry
ports:
- protocol: TCP
port: 5000

5. kustomization.yaml

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- namespace.yaml
- deployment.yaml
- service.yaml
- ingressroute.yaml

操作与问题

我通过kubectl apply -k registry把这些配置应用到了集群,之后用curl访问仓库的目录接口能得到正常响应:

$ curl http://registry.test.local:8090/v2/_catalog
{"repositories":[]}

但当我尝试推送镜像时,却收到了404错误:

$ docker push registry.test.local:8090/hello-world
Using default tag: latest
The push refers to repository [registry.test.local:8090/hello-world]
ac28800ec8bb: Preparing
error parsing HTTP 404 response body: invalid character 'p' after top-level value: "404 page not found\n"

对比测试

我特意关掉了K3s测试集群,直接用Docker运行私有仓库,这时候推送镜像是完全正常的:

# 启动仓库命令:
docker run -p 8090:5000 registry:2

# 推送镜像命令:
docker push registry.test.local:8090/hello-world
Using default tag: latest
The push refers to repository [registry.test.local:8090/hello-world]
ac28800ec8bb: Layer already exists
latest: digest: sha256:d37ada95d47ad12224c205a938129df7a3e52345828b4fa27b03a98825d1e2e7 size: 524

想请教下各位,我上面的Kubernetes配置哪里出了问题?需要修改哪些部分才能让集群里的私有仓库正常接收镜像推送?非常感谢大家的帮助!

备注:内容来源于stack exchange,提问作者Rob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 10:18:01