Я в процессе превращения нашего приложения в более мелкие сервисы. Я добавляю новые сервисы на внутренний сервер (т.е. не общедоступный), а затем делаю записи в файле /etc/hosts наших веб-серверов. Пример записи
10.160.x.xx newservice.mydomain.com
Этот подход работает. Но если я тестирую службу с веб-сервера, я вижу, что ping работает, а nslookup нет. Так что ping newservice.mydomain.com
успешно, а не nslookup newservice.mydomain.com
Почему так? Как мне заставить nslookup тоже работать?
решение1
nslookup
запрашивает DNS-серверы, а они не знают о вашем локальном hosts
файле, поэтому они не будут разрешать записи, содержащиеся в нем. Если вы хотите, чтобы ваш hosts
файл был доступен через DNS-запросы, вам нужно использовать DNS-сервер, который знает о нем (например, systemd-resolved
может быть настроен для анализа файла).
Однако использование hosts
записи здесь кажется излишним, поскольку каждый экземпляр вычислительного движка может быть разрешен с использованием DNS-сервера Google Cloud по умолчанию ( 169.254.169.254
). Имя каждого вычислительного движка — [INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal
(Более подробную информацию о внутреннем DNS можно найти здесь.), поэтому вы сможете получить доступ к своим серверам по этому имени.