Как работает обнаружение служб для модулей с hostNetwork = true

Если hostNetwork имеет значение true в спецификации модуля, он получает тот же IP-адрес, что и host. Хотя с этим IP-адресом можно связаться с модулем, я не могу получить доступ к модулю через службу. Если я установил для clusterIP значение None in service, поиск DNS не вернет никаких результатов. Если назначен clusterIP, трафик не перенаправляется на серверный модуль.


person hobgoblin    schedule 29.12.2016    source источник


Ответы (1)


(определенно неправильно, неправильно понял вопрос) Проблема в /etc/resolv.conf

При использовании hostNetwork = true вы получаете DNS-серверы хоста, а у вас там нет DNS-кластера.

Отследить проблему на github

person Maxym    schedule 30.12.2016
comment
Я думаю, что проблема связана с тем, что службы hostNetworked обнаруживают службу nonHostNetworked. У меня вопрос: как обычный модуль отправляет трафик на модуль hostNetworked через абстракцию службы? - person hobgoblin; 02.01.2017
comment
О, ты прав. Неправильно понял ваш вопрос. Вы можете попытаться вручную создать конечную точку для своей службы и указать ее на IP-адрес хоста. - person Maxym; 03.01.2017
comment
Я сделал то же самое с двумя разными решениями: одно - создать развертывание k8s для прокси-запроса для размещения сетевых IP-адресов (используя nginx как HTTP-службу), второе - я использую externalName (отметьте kubernetes.io/docs/user-guide/services/). - person Hang; 05.01.2017