Я пытаюсь предоставить службу в простом кластере kubernetes, состоящем из одного рабочего и одного мастера. В частности, я использую дескриптор ниже:
apiVersion: приложения/v1
вид: развертывание
метаданные:
имя: развертывание mongodb
этикетки:
приложение: монгодб
спецификация:
реплики: 1
селектор:
метки соответствия:
приложение: монгодб
шаблон:
метаданные:
этикетки:
приложение: монгодб
спецификация:
контейнеры:
- имя: монгодб
изображение: монго
порты:
- контейнерПорт: 27017
---
апиВерсия: v1
вид: сервис
метаданные:
имя: mongodb-сервис
спецификация:
селектор:
приложение: монгодб
порты:
- протокол: TCP
порт: 27017
целевой порт: 27017
Затем я пытаюсь использовать этот сервис из другого модуля:
apiVersion: приложения/v1
вид: развертывание
метаданные:
имя: монго-экспресс
этикетки:
приложение: монго-экспресс
спецификация:
реплики: 1
селектор:
метки соответствия:
приложение: монго-экспресс
шаблон:
метаданные:
этикетки:
приложение: монго-экспресс
спецификация:
контейнеры:
- название: монго-экспресс
изображение: монго-экспресс
порты:
- контейнерПорт: 8081
среда:
- имя: ME_CONFIG_MONGODB_SERVER
значение: mongodb-сервис
Однако то, что я получаю в другом модуле mongo-express, заключается в том, что mongodb-service не может быть разрешен. На самом деле, если я запускаю модуль и пробую простой wget, это результат:
$ wget http://mongodb-service/ -O-
--2021-06-23 13:31:08-- http://mongodb-service/
Разрешение службы mongodb (служба mongodb)... не удалось: имя или служба неизвестны.
wget: не удалось разрешить адрес хоста «mongodb-service»
Вместо этого nslookup mongodb-service отлично работает:
$ nslookup mongodb-сервис
Сервер: 10.96.0.10
Адрес: 10.96.0.10#53
Однако, если я попытаюсь использовать netcat, я получу следующее:
$nc mongodb-сервис 27017
nc: getaddrinfo для хоста «mongodb-service», порт 27017: имя или служба неизвестны
Так что похоже, что это getaddrinfo терпит неудачу.
Как я могу отладить проблему?