Aws kubernetes - тип сервиса: балансировщик нагрузки. pod выходит из строя после развертывания

Итак, у меня есть полностью рабочий EKS-кластер с ELB перед сервисом. Проблема теперь в том, что когда я выполняю обновление руля, когда все, что он делает, это вытаскивает новую версию образа приложения, целевой модуль выходит из строя на балансировщике нагрузки и никогда не восстанавливается. Проверено, что модуль работает правильно с новым образом, поэтому не совсем уверен, что здесь происходит.

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

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

Я могу запустить tcpdump в контейнере и увидеть запросы проверки работоспособности, поступающие в модуль, но на них не отвечают, поэтому очевидно, что это вызывает его выход из строя на ELB. Но если я просматриваю журналы модуля, он работает нормально, поскольку я вижу, что проверки готовности работают нормально, что на самом деле запускает функцию в приложении.

Не совсем уверен, где искать отсюда. Насколько я понимаю, все проверено.

Указывает ли проверка живучести и / или готовности на тот же порт, что и тот, который обслуживает ваш трафик? Почему это тип приложения?

Rico 13.09.2018 22:43

Да, тот же порт. Это API узла, и проверка готовности вызывает конечную точку API, которая выполняет запрос к БД, чтобы убедиться, что приложение готово к обслуживанию запросов.

Rick Baker 14.09.2018 00:39

Можете ли вы подключиться к базе данных из модуля, на который не отвечают на проверку работоспособности?

Rico 14.09.2018 00:48

да. Внутри стручка все работает нормально. Соединение с БД хорошее из стручка. Я не могу найти ничего плохого в самой капсуле. Я сравнил все настройки с теми, которые работают после убийства и воссоздания, и не вижу никакой разницы.

Rick Baker 14.09.2018 01:37

Похоже, это может быть связано с узлом и вашим приложением. Вы пробовали другой пример приложения API?

Rico 14.09.2018 02:28

Да, я на самом деле только что развернул фронтенд React сегодня вечером. Перед ним находится собственный балансировщик нагрузки. При первоначальной установке все прошло нормально, но возникла та же проблема. Когда я обновляю шлем и просто получаю новый образ, «который точно такой же», я получаю ту же проблему. Периодически балансировщик нагрузки показывает, что он не работает. Убейте стручок, и все будет хорошо. Так же и при каждом развертывании, это совершенно случайно, иногда нормально, иногда выходит из строя.

Rick Baker 14.09.2018 02:59

как насчет другого кластера? :)

Rico 14.09.2018 03:57

что, если вы сделаете kubectl get deployment/service/rs/pod -o yaml до и после обновления, а затем просто измените его? Может процедура обновления как-то нарушена? Вы также пробовали подключиться напрямую к порту узла k8s, экспортируемому службой извне? Можете ли вы вручную запустить проверку работоспособности?

shutty 14.09.2018 23:15

Я так и не смог заставить это работать должным образом, поэтому в конце концов я просто переключился на nginx-ingress-controller. Сработало к лучшему, так как теперь это всего лишь один ELB для всех моих входов.

Rick Baker 19.09.2018 21:55
1
9
231
0

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