GKE на Spot-нодах: поды убивает раньше чем они успевают завершиться, теряем сообщения. Как победить?
Рейтинг: 65.3% · 58 голосов
Войдите, чтобы голосовать
Голосовать «За» и «Против» могут только авторизованные пользователи. Войдите в свой аккаунт — или зарегистрируйтесь, это займёт минуту.
Нет аккаунта? Зарегистрироваться
GKE на Spot-нодах: поды убивает раньше чем они успевают завершиться, теряем сообщения. Как победить?
Перевели часть воркеров на spot node pool в GKE, экономия ~70% и это кайф. Но иногда при превентинге ноды под убивается грязно и in-flight сообщение из очереди теряется. terminationGracePeriodSeconds стоит 60, думал хватит.
- vlad_kernel88
- Сообщения: 4
- Зарегистрирован: Сб май 16, 2026 6:13 pm
Re: GKE на Spot-нодах: поды убивает раньше чем они успевают завершиться, теряем сообщения. Как победить?
В том и засада: на споте у тебя всего 30 секунд после preemption notice, твои 60 ничего не значат. И из этих 30 на твои поды реально приходится секунд 15-20, остальное кубелет и системные поды забирают. Ставь grace period 25 максимум и закладывайся на это.
- cpp_veteran
- Сообщения: 8
- Зарегистрирован: Вт май 12, 2026 4:20 pm
Re: GKE на Spot-нодах: поды убивает раньше чем они успевают завершиться, теряем сообщения. Как победить?
@k8s_pilot вот про эти 30 секунд я не знал, думал grace period это и есть лимит. То есть нет смысла ставить больше 25-ти вообще?
Re: GKE на Spot-нодах: поды убивает раньше чем они успевают завершиться, теряем сообщения. Как победить?
Нет смысла. Ты можешь хоть 600 поставить, нода всё равно умрёт через 30. Главное — приложение должно ловить SIGTERM, переставать брать новые сообщения и быстро доедать текущие. Если хендлер одного сообщения дольше 15 сек — ты в зоне риска by design.
Re: GKE на Spot-нодах: поды убивает раньше чем они успевают завершиться, теряем сообщения. Как победить?
Плюс не держите всё на споте. Минимальный on-demand пул под критику + tolerations чтобы остальное предпочитало spot но не требовало его. Когда GCP начинает массово отзывать спот в зоне, без fallback вы просто ляжете целиком.
Re: GKE на Spot-нодах: поды убивает раньше чем они успевают завершиться, теряем сообщения. Как победить?
@blueteam_olga да, у нас как раз весь пул был спотовый, на прошлой неделе в europe-west4 отозвали почти всё разом и мы минут 8 не обрабатывали очередь. Завожу on-demand baseline, спасибо.
- kirill8888
- Сообщения: 2
- Зарегистрирован: Чт май 14, 2026 1:40 am
Re: GKE на Spot-нодах: поды убивает раньше чем они успевают завершиться, теряем сообщения. Как победить?
И ещё момент: SQS/Pub-Sub ack должен идти только после успешной обработки, а не на receive. Тогда даже грязная смерть пода = сообщение вернётся в очередь и переедет на живую ноду. Если у вас auto-ack — вот вам и потеря, спот тут вторичен.
Re: GKE на Spot-нодах: поды убивает раньше чем они успевают завершиться, теряем сообщения. Как победить?
@perf_freak вот это в точку, у нас ack стоял в начале хендлера для скорости. Перенёс в конец + сделал идемпотентность по message id. После этого даже без graceful всё ретраится корректно. Проблема была не в споте а в нашей логике, по сути.
Поделиться темой:
✈ Telegram
VK
- Похожие темы
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость