Закрытый реестр Dober в Kubernetes не работает - альтернатива командной строки работает, но k8s не может получить изображение - PullRequest
1 голос
/ 24 мая 2019

У меня есть следующий docker-compose.yaml для личного реестра докеров, который будет запущен на 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, реестр должен быть запущен. Но выполнение 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-образ, который находится в частном реестре и должен быть извлечен kubernetes (minikube) из него. Тем не менее, я всегда получаю ошибку CrashLoopBackoff, которую я считаю из-за того факта, что реестр не может быть запущен из kubernetes и случайно не доступен для него. Что я не так делаю?

1 Ответ

1 голос
/ 28 мая 2019

Решение состоит в том, чтобы настроить реестр в мини-кубе и переадресовать порт на локальный хост, чтобы изображение помещалось в реестр мини-кубов.

...