Rolling update — постепенное обновление инстансов: один за другим заменяются со старой версии на новую. В любой момент часть подов работает на старой версии, часть — на новой.
В Kubernetes это дефолтная стратегия. Настраивается через maxUnavailable и maxSurge:
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1 # максимум 1 под недоступен
maxSurge: 1 # максимум 1 лишний под
Процесс: создаётся новый под → проходит readiness probe → старый под получает SIGTERM → graceful shutdown → удаляется. И так по одному, пока все не обновятся.
Важно для Go: обрабатывай SIGTERM правильно, закрывай HTTP-сервер через server.Shutdown(ctx), дожидайся in-flight запросов. Если readiness probe настроена криво или graceful shutdown не работает — часть запросов потеряется при обновлении.