SocketTimeoutException, когда контейнер в Pod пытается связаться с сервером Kubernetes API - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть кластер Kubernetes, развернутый локально с Kubeadm / Vagrant с мастером и двумя работниками со следующими IP-адресами: master: 192.168.250.10 worker1: 192.168.250.11 worker2: 192.168.250.12

, затем у меня есть приложение, состоящее из ReactJS внешнего интерфейса и бэкэнда SpringBoot, работающее в двух отдельных контейнерах на одном модуле Pod. Когда я отправляю форму на веб-интерфейсе, приложение вызывает API-интерфейс в бэкэнде, который внутренне вызывает API-интерфейс Kubernetes. Для аутентификации в кластере я использую правильно настроенный файл .kube / config.

Когда приложение (frontend / backend) находится за пределами кластера, все работает нормально. Я использую docker -compose для запуска двух контейнеров только для модульных тестов. Файл .kube / config имеет URL-адрес API https://192.168.250.10: 6443 . Проблема в том, что когда я пытаюсь запустить приложение в контейнерах, IP 192.168.250.10 не работает должным образом, и связь идет в исключении тайм-аута.

Я уверен, что приложение в порядке, потому что то же самое приложение работает нормально в IBM Cloud, в котором .kube / config есть сервер API с общедоступным c IP-адресом.

Мой вопрос: какой IP-адрес следует поместить в .kube / config, когда я запускаю приложение локально внутри моего кластера? Как я могу получить этот IP используя команды kubectl? Заранее спасибо за любую помощь.

...