172 похожих чатов

Всем привет. Кто нибудь может подсказать как избежать 502 на

ingress? Появляется когда я убиваю POD. Работает в 2 репликах.

10 ответов

18 просмотров

Ради прикола добавить перед ним еще 1 nginx)

убиваешь как ? хелсчеки проставлены ?

поставить readiness пробу

Rustam.T- Автор вопроса
George Gaál
убиваешь как ? хелсчеки проставлены ?

через UI . Да readinessProbe и livenessProbe стоят

Rustam.T- Автор вопроса
Rustam.T
стоит

502 точно от ингресса идет? Если я не ошибаюсь ингресс отвечает 502, если у сервиса вообще эндпоинтов нет

Как я понял redinessProbe у тебя уж есть? Там смотри помимо redinessProbe есть какой нюанс. Когда ты или любой другой контроллер удаляет pod в кластере, k8s помечает его на удаление и одновременно начинает процедуру удаления пода и удаление его из endpoints сервисов, это видят другие контроллеры и запускают свои процедуры независимо друг от друга. При этом надо понимать, что удаление ip из endpoints не означает, что kube-proxy моментально почистит его на хостах, а ingress-controller моментально его удалит из upstream'ов То есть это делают разные контроллеры, и делают это параллельно. 1) Удаление ip из endpoints (забыл какой контроллер это делает) 2) kube-proxy начинает чистить iptables/ipvs от ip пода на всех нодах, только когда увидит что он пропал из endpoints 3) ingress-controller удаляет ip пода из upstream, только когда увидит что он пропал из endpoints 4) kubelet начниет процедуру удаленя пода - кидает TERM контейнерам и тому подобное И даже если у тебя есть redinessProbe и твое приложение умеет в graceful shutdown. Ты можешь словить такую ситуацию: Предположем что твое приложение умеет в graceful. Оно получает SIGTERM, отказывается принимать новые запросы и шлет их лесом, завершает текущие запросы и выключается. Но когда приложение уже отказалось принимать новые запросы, из ipvs/iptables правил и upstream'ов оно могло еще не успеть удалится, поэтому нет гарантии что в этот момент к нему не прилетят новые запросы. Тем более если твое приложение не умеет в graceful shutdown, то запросы просто уйдут в никуда. Для решения этой проблемы ты можешь добавить, в preStop хук контейнера небольшой sleep, чтобы на всякий случай не много подождать когда kube-proxy почистит правила iptables/ipvs на хостах. Пример: lifecycle: preStop: exec: command: - sh - -c - 'sleep 10' Эта увиличит шанс того, что когда твое приложение получит SIGTERM, kube-proxy успеет все почистить на нодах. А твое приложение будет успешно принимать запросы пока это не произошло, и только через 10 секунд получит SIGTERM, когда уже скорее всего будет выкинуто из правил iptables/ipvs и upstream'ов ingress-controller Мог конечно просто написать, добавь sleep в preStop. Но так надеюсь понятней зачем это делать.

Rustam.T- Автор вопроса

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта