Kubernetes Private Docker 注册表不工作 - 命令行替代工作,但 k8s 无法拉取图像

Kubernetes Private Docker Registry not working - Command-Line Alternative working, but k8s unable to pull image

我有以下 docker-compose.yaml 私有 docker 注册中心 运行 在 minikube 上:

version: '3'
services:
  registry:
    restart: always
    image: registry:2
    command: ["/bin/sh", "-ec","sleep 1000"]
    ports:
      - 443:443
    environment:
      REGISTRY_HTTP_TLS_CERTIFICATE: /certs/domain.crt
      REGISTRY_HTTP_TLS_KEY: /certs/domain.key
      REGISTRY_AUTH: htpasswd
      REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd
      REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm
    volumes:
      - /home/usr/registry/data:/var/lib/registry
      - /home/usr/registry/certs:/certs
      - /home/usr/registry/auth:/auth

当我执行 kompose up 时,注册表应该启动并 运行ning。但是做 docker login localhost:443 只会给我一个连接被拒绝的错误。如果我 运行

docker run -d   --restart=always   --name registry   -v `pwd`/auth:/auth   -v `pwd`/certs:/certs   -v `pwd`/certs:/certs   -e REGISTRY_AUTH=htpasswd   -e REGISTRY_AUTH_HTPASSWD_REALM="Registry Realm"   -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd   -e REGISTRY_HTTP_ADDR=0.0.0.0:443   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt   -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key   -p 443:443   registry:2

一切正常,我可以登录我的私人注册表。 这很重要的原因是我有一个位于私有注册表中的 webapp-image,应该由 kubernetes (minikube) 从中提取。但是,我总是会收到 CrashLoopBackoff 错误,我认为这是因为注册表不能是来自 kubernetes 的 运行 并且顺便说一句它无法访问。我错了什么?

解决方案是在 minikube 中设置注册表,port-forward 从本地主机设置注册表,以便将映像推送到 minikube 注册表。