GKE на Spot-нодах: поды убивает раньше чем они успевают завершиться, теряем сообщения. Как победить?

Рейтинг: 65.3% · 58 голосов
AWS, Google Cloud Platform, Microsoft Azure, Cloudflare, Hetzner: облачные сервисы, архитектура, serverless, стоимость и миграция в облако.
Ответить
Аватара пользователя
olga_tcp
Сообщения: 34
Зарегистрирован: Пн май 11, 2026 12:27 am

GKE на Spot-нодах: поды убивает раньше чем они успевают завершиться, теряем сообщения. Как победить?

Сообщение olga_tcp »

Перевели часть воркеров на spot node pool в GKE, экономия ~70% и это кайф. Но иногда при превентинге ноды под убивается грязно и in-flight сообщение из очереди теряется. terminationGracePeriodSeconds стоит 60, думал хватит.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
vlad_kernel88
Сообщения: 4
Зарегистрирован: Сб май 16, 2026 6:13 pm

Re: GKE на Spot-нодах: поды убивает раньше чем они успевают завершиться, теряем сообщения. Как победить?

Сообщение vlad_kernel88 »

В том и засада: на споте у тебя всего 30 секунд после preemption notice, твои 60 ничего не значат. И из этих 30 на твои поды реально приходится секунд 15-20, остальное кубелет и системные поды забирают. Ставь grace period 25 максимум и закладывайся на это.
👍 ❤️1 🔥 😄 🤔
Аватара пользователя
cpp_veteran
Сообщения: 8
Зарегистрирован: Вт май 12, 2026 4:20 pm

Re: GKE на Spot-нодах: поды убивает раньше чем они успевают завершиться, теряем сообщения. Как победить?

Сообщение cpp_veteran »

@k8s_pilot вот про эти 30 секунд я не знал, думал grace period это и есть лимит. То есть нет смысла ставить больше 25-ти вообще?
👍4 ❤️1 🔥 😄1 🤔1
Аватара пользователя
denis9127
Сообщения: 25
Зарегистрирован: Ср май 13, 2026 8:17 am

Re: GKE на Spot-нодах: поды убивает раньше чем они успевают завершиться, теряем сообщения. Как победить?

Сообщение denis9127 »

Нет смысла. Ты можешь хоть 600 поставить, нода всё равно умрёт через 30. Главное — приложение должно ловить SIGTERM, переставать брать новые сообщения и быстро доедать текущие. Если хендлер одного сообщения дольше 15 сек — ты в зоне риска by design.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
gleb_msk
Сообщения: 4
Зарегистрирован: Вт май 19, 2026 2:46 pm

Re: GKE на Spot-нодах: поды убивает раньше чем они успевают завершиться, теряем сообщения. Как победить?

Сообщение gleb_msk »

Плюс не держите всё на споте. Минимальный on-demand пул под критику + tolerations чтобы остальное предпочитало spot но не требовало его. Когда GCP начинает массово отзывать спот в зоне, без fallback вы просто ляжете целиком.
👍2 ❤️ 🔥 😄1 🤔
Аватара пользователя
fedor_tcp
Сообщения: 34
Зарегистрирован: Ср май 13, 2026 1:00 pm

Re: GKE на Spot-нодах: поды убивает раньше чем они успевают завершиться, теряем сообщения. Как победить?

Сообщение fedor_tcp »

@blueteam_olga да, у нас как раз весь пул был спотовый, на прошлой неделе в europe-west4 отозвали почти всё разом и мы минут 8 не обрабатывали очередь. Завожу on-demand baseline, спасибо.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
kirill8888
Сообщения: 2
Зарегистрирован: Чт май 14, 2026 1:40 am

Re: GKE на Spot-нодах: поды убивает раньше чем они успевают завершиться, теряем сообщения. Как победить?

Сообщение kirill8888 »

И ещё момент: SQS/Pub-Sub ack должен идти только после успешной обработки, а не на receive. Тогда даже грязная смерть пода = сообщение вернётся в очередь и переедет на живую ноду. Если у вас auto-ack — вот вам и потеря, спот тут вторичен.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
julia_py
Сообщения: 10
Зарегистрирован: Ср май 20, 2026 10:00 am

Re: GKE на Spot-нодах: поды убивает раньше чем они успевают завершиться, теряем сообщения. Как победить?

Сообщение julia_py »

@perf_freak вот это в точку, у нас ack стоял в начале хендлера для скорости. Перенёс в конец + сделал идемпотентность по message id. После этого даже без graceful всё ретраится корректно. Проблема была не в споте а в нашей логике, по сути.
👍 ❤️1 🔥1 😄 🤔
Ответить
Поделиться темой: ✈ Telegram VK

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость