Используйте https для доступа к личному реестру Docker - PullRequest
0 голосов
/ 29 января 2019

У меня есть личный реестр, доступ к которому осуществляется по протоколу https.Но Kubernetes + Docker всегда пытается использовать протокол http http://myserver.com:8080 вместо https://myserver.com:8080.

Как заставить протокол https?

Фрагмент моего yaml файла, который объявляетa Pod:

  containers:
    - name: apl
      image: myserver.com:8080/myimage

Подробная информация о моем окружении:

  • CentOS 7.3
  • Докер 18.06
  • Kubernetes (Minikube) 1.13.1

Сообщение об ошибке в журналах Kubernetes:

  Normal   Pulling    30s (x4 over 2m2s)  kubelet, minikube  pulling image "docker.mydomain.com:30500/vision-ssh"
  Warning  Failed     30s (x4 over 2m2s)  kubelet, minikube  Failed to pull image "docker.mydomain.com:30500/vision-ssh": rpc error: code = Unknown desc = Error response from daemon: Get http://docker.mydomain.com:30500/v2/: net/http: HTTP/1.x transport connection broken: malformed HTTP response "\x15\x03\x01\x00\x02\x02"
  Warning  Failed     30s (x4 over 2m2s)  kubelet, minikube  Error: ErrImagePull
  Warning  Failed     19s (x6 over 2m2s)  kubelet, minikube  Error: ImagePullBackOff
  Normal   BackOff    4s (x7 over 2m2s)   kubelet, minikube  Back-off pulling image "docker.fccma.com:30500/vision-ssh"

Если я пытаюсь указать протокол в имени изображения, он жалуется:

couldn't parse image reference "https://docker.mydomain.com:30500/vision-ssh": invalid reference format

Followedэто руководство для того, чтобы создать реестр изображений.Он уже защищен (протокол HTTPS и защищен пользователем / паролем).

Ответы [ 3 ]

0 голосов
/ 29 января 2019

В файле /etc/hosts сервер docker.mydomain.com сопоставлен с 127.0.0.1.Я прочитал в докере документов , что локальные реестры всегда считаются небезопасными.Если я использую имя, сопоставленное с внешним IP-адресом, Docker пытается https.

0 голосов
/ 29 января 2019

Запустите прокси-службу https напротив службы реестра контейнеров.Посмотрите на nginx как https proxy

0 голосов
/ 29 января 2019

Ваш личный реестр докеров может быть не защищен.Если это защищенный частный реестр, он всегда использует https, в противном случае он ссылается на http.

Для получения более подробной информации см. Doc:

Docker uses the https:// protocol to communicate with a registry, unless the registry is allowed to be accessed over an insecure connection. Refer to the insecure registries section for more information.

https://docs.docker.com/engine/reference/commandline/dockerd/#insecure-registries

Так что заставить httpsЗащитите свой реестр.В сети доступно много статей для защиты вашего реестра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...