Как входной контроллер предоставляет имена DNS? - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь понять, как работает входной контроллер в kubernetes.

Я развернул nginx входной контроллер на голом железном кластере k8s (относится к добрым входным документам). Localhost теперь указывает на nginx страницу по умолчанию. .

Я развернул приложение с входным ресурсом с хостом "foo.localhost". Теперь я могу получить доступ к своему приложению на foo.localhost.

Я хотел бы знать, как nginx смог сделать это без каких-либо изменений в файле / etc / hosts.

Я также хочу чтобы получить доступ к моему приложению с другого компьютера через ту же / другую сеть.

Я использовал ngrok для этого

ngrok http foo.localhost

, но он указывает на страницу nginx по умолчанию и не мое приложение

Как получить к нему доступ с помощью ngrok, если я не хочу использовать перенаправление портов или прокси-сервер kube.

1 Ответ

1 голос
/ 17 апреля 2020

На вашем компьютере localhost и foo.localhost все разрешаются по одному и тому же адресу, 127.0.0.1. Это уже есть, это не то, что делает nginx или k8s. По этой причине вы не можете получить доступ к этому с другой машины, потому что это имя также разрешает локальный хост для этой машины, а не тот, на котором запущен ваш k8s. Когда вы выставили его, используя ngrok, он выставил его под другим именем. Когда вы пытаетесь получить доступ к входу, используя это имя, запрос содержит заголовок Host с URL-адресом ngrok, который не совпадает с foo.localhost, поэтому вход считает, что запрос относится к другому домену.

Попробуйте выставить свой локальный хост во входе, используя URL-адрес ngrok.

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