Готовность Kubernetes не может посещать службу через DNS

Я развертываю Elastic Search и Fluentd в одном и том же пространстве имен test и пишу ниже конфигурацию, чтобы Fluentd мог посещать Elastic serach:

        livenessProbe:
          failureThreshold: 5
          httpGet:
            host: elasticsearch-logging
            path: /
            port: 9200
            scheme: HTTP
          initialDelaySeconds: 10
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 1

Это не сработало, поэтому я использовал полное DNS-имя, что все равно не удалось:

Readiness probe failed: Get http://elasticsearch-logging.test.svc.cluster.local:9200/: dial tcp: lookup elasticsearch-logging.test.svc.cluster.local: no such host

Я удалил часть живости и использовал curl в модуле Fluentd, который работает:

root@fluentd-es-2dvmf:/# curl http://elasticsearch-logging:9200/
{
  "name" : "elasticsearch-logging-0",
  "cluster_name" : "skydiscovery-es-cluster",
  "cluster_uuid" : "fr3oSzpHT_qP9HQJ1WygnA",
  "version" : {
    "number" : "6.2.4",
    "build_hash" : "ccec39f",
    "build_date" : "2018-04-12T20:37:28.497551Z",
    "build_snapshot" : false,
    "lucene_version" : "7.2.1",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

Почему они ведут себя по-разному?

Есть какой-либо способ сделать это?

Как создать страницу входа в систему с помощью HTML с использованием CSS
Как создать страницу входа в систему с помощью HTML с использованием CSS
Создание страницы входа в систему является важной частью создания веб-сайта или приложения, требующего аутентификации пользователя. Простую страницу...
0
0
260
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Пожалуйста, проверьте ваше развертывание.
В описании мы видим "livenessProbe", а в "разделе ошибок" - "Зонд готовности".

С точки зрения модуля «свободно говорил» (IP-адрес кластера) известны как наименование услуги, так и айпи адрес (как вы можете видеть, выполнение curl по имени или по IP-адресу).

С точки зрения Кубелет (узел) (во время «проверки живучести») вместо этого используйте «IP-адрес службы».
В целях тестирования вы можете добавить «IP-адрес службы» и «наименование услуги» в свой известный файл /и т.д./хосты. Пожалуйста, поделитесь своими результатами.

Ответ принят как подходящий

Это негласные правила о зондировании, подробности см. в пиар. Это не связано с какими-либо неправильными настройками.

Сопоставление IP-адреса модуля и имени службы с /etc/hosts может работать, поскольку хост может подключиться к IP-адресу модуля, но не может разрешить имя службы.

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