Могут ли модули Kubernetes, использующие сеть хоста, получать доступ к ресурсам службы по имени службы и порту службы?
Может ли модуль Kubernetes, использующий хост-сеть, отправлять запросы непосредственно к ресурсу службы, используя имя службы и порт службы (включая использование CoreDNS)? Или мне нужно открыть службу через nodePort в хост-сети?
1 ответ
Если вы хотите, чтобы модуль отправлял запросы непосредственно к сервисному ресурсу, вам необходимо изменить модуль модуля. dnsPolicy
к ClusterFirstWithHostNet
. Его следует использовать явно для модулей, работающих сhostNetwork: true
. Таким образом, он будет использовать кластерный DNS и будет находиться в сети хоста.
Вы можете проверить это /etc/resolv.conf
файл. Когда вы используетеdnsPolicy: ClusterFirst
этот файл наследуется модулем и использует DNS-преобразователь хоста. Когда вы устанавливаетеdnsPolicy: ClusterFirstWithHostNet
он изменит преобразователь DNS на DNS кластера.