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
相关产品推荐
相关产品推荐

