Реестр Openshift Origin: как сделать его доступным?

Мы настраиваем тестовое облако Openshift Origin, которое мы создали с помощью учебного пособия openshift ansible. Мы следим за документацией по адресу: https://docs.openshift.com/container-platform/latest/install_config/install/advanced_install.html
Мы не делали ничего особенного в отношении реестра openshift или маршрутизатора. Мы новички в этой теме, и с тех пор как несколько тегов пытались сделать реестр openshift доступным ....

У нас 3 хоста:

  • мастер (не поддается планированию)
  • узел-1, который настроен на регион «Инфра» и имеет службы реестра и маршрутизатора
  • узел-2 (другой регион).

Вот службы, работающие в проекте по умолчанию:

NAME               CLUSTER-IP       EXTERNAL-IP   PORT(S)                   AGE
docker-registry    172.30.78.66     <none>        5000/TCP                  3h
kubernetes         172.30.0.1       <none>        443/TCP,53/UDP,53/TCP     3h
registry-console   172.30.190.63    <none>        9000/TCP                  3h
router             172.30.197.135   <none>        80/TCP,443/TCP,1936/TCP   3h

Когда мы используем SSH непосредственно на узле-1, на котором работают реестр и маршрутизатор, мы можем без проблем получить доступ к реестру и можем отправить некоторые изображения. Именно то, что здесь описано: docs.openshift.org/latest/install_config/registry/accessing_registry.html

Теперь мы не можем получить доступ к реестру для других хостов (master или node-2), и мы действительно не понимаем, как мы можем сделать реестр доступным .... Мы, конечно, читали: docs.openshift.org/latest/install_config/registry /securing_and_exposing_registry.html#access-insecure-registry-by-exposing-route

Мы использовали эту команду:

oc выставить службу docker-registry --hostname = ‹hostname> -n default

В документации говорится: вы должны иметь возможность разрешать это имя извне через DNS в IP-адрес маршрутизатора.

Поскольку к маршрутизатору не привязан ВНЕШНИЙ IP-адрес, мы не понимаем, как до него добраться.

Есть ли какая-нибудь команда oc или oadm для доступа к маршрутизатору через внешний IP-адрес?

Заранее большое спасибо

Эммануэль


person user7261496    schedule 08.09.2017    source источник
comment
1. Какой URL-адрес вы используете, когда пытаетесь получить доступ к реестру с главного сервера и узла-2? 2. Маршрутизатор принимает IP-адрес узла-1, поэтому ваши записи DNS должны разрешаться в узел-1.   -  person Grega Bremec    schedule 08.09.2017
comment
Привет, @Greca Bremec, я использую docker-registry CLUSTER-IP 172.30.78.66, когда я, например, пытаюсь войти в систему с мастера, я получаю: Ответ об ошибке от демона: Get 172.30.78.66:5000/v1/users: наберите tcp 172.30.78.66:5000: getsockopt: нет маршрута к хосту.   -  person user7261496    schedule 08.09.2017
comment
что это за раздача? Можете ли вы дважды проверить, что firewalld остановлен и отключен? похоже, что с iptables что-то не так.   -  person Grega Bremec    schedule 08.09.2017
comment
Мы используем CentOS 7.3 / oc v3.6.0 + c4dd4cf / kubernetes v1.6.1 + 5115d708d7 / features: Basic-Auth GSSAPI Kerberos SPNEGO / openshift v3.6.0 + c4dd4cf / Firewalld не работает. Позже я проверю iptables и дам вам знать. Большое спасибо за вашу помощь ;)   -  person user7261496    schedule 08.09.2017
comment
каков вывод systemctl is-enabled firewalld? на всех узлах - мастер, узел-1 и узел-2.   -  person Grega Bremec    schedule 08.09.2017
comment
У нас нет firewalld на хостах: outpu - «Не удалось получить состояние файла модуля для firewalld.service: нет такого файла или каталога».   -  person user7261496    schedule 08.09.2017


Ответы (1)


Основываясь на заявленной вами конфигурации, я ожидаю, что путь к вашему пользовательскому интерфейсу / API для Openshift (openshift.yourdomain.com) будет направлен на тот же IP-адрес, что и ваш узел-1, потому что именно там вы запускаете маршрутизатор.

Если это так, вы должны указать имя хоста, которое вы передаете с помощью команды в DNS, на тот же IP-адрес или как CNAME для этого хоста.

oc expose service docker-registry --hostname=<hostname> -n default

В более крупной установке с выделенным набором узлов балансировки нагрузки (фунты) у вас может быть определенная запись A для набора. Тогда вы можете сделать так, чтобы имя хоста было CNAME для этой записи.

person gregswift    schedule 12.10.2017