pod и service dns разрешение

У меня есть кластер Kubernetes, на котором я развернул поды и службы. Один из модулей должен подключиться к службе через имя службы, указанное в ее манифесте.

Все службы и модули развертываются в пространстве имен по умолчанию.

При просмотре журналов модуля возникает следующая ошибка:

cassandra cluster ['cassandra'] not reachable: [Errno -8] Unrecognized service

Caused by: java.net.UnknownHostException: cassandra: Name does not resolve
        at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)
        at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928)
        at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323)
        at java.net.InetAddress.getAllByName0(InetAddress.java:1276)
        at java.net.InetAddress.getAllByName(InetAddress.java:1192)
        at java.net.InetAddress.getAllByName(InetAddress.java:1126)
        at com.datastax.driver.core.Cluster$Builder.addContactPoint(Cluster.java:884)

У меня развернута служба под названием cassandra.

Когда я запускаю nslookup внутри модуля, вот результат:

kubectl exec -it pod/kairosdb -- nslookup cassandra
nslookup: can't resolve '(null)': Name does not resolve

Name:      cassandra
Address 1: <ip> cassandra.default.svc.cluster.local

Нужна помощь по устранению этой проблемы.

2 ответа

Если модуль пытается получить доступ к службе, которая находится в другом пространстве имен, вам необходимо указать пространство имен службы.

cassandra.namespacename

См. Это для получения дополнительной помощи по отладке.

Для локального поиска используйте полное имя службы. В этом случае cassandra.deployed-namespace-name.svc.cluster.local.

Другие вопросы по тегам