Задача: перевести боевой и тестовый кластеры на новую минорную версию и не уронить то, что на них крутится. Рабочие узлы, базы, очереди, входной контроллер, выкатка через GitOps.
Сначала разобрал изменения новой версии и проверил каждый компонент на совместимость: из пяти потенциально ломающих изменений нас не касалось ни одно, и это выяснилось до работ, а не во время. Дальше обновление по одному узлу - выселение нагрузки, обновление, возврат в строй. Перед работой с управляющими узлами снимал резервную копию хранилища конфигурации кластера.
По дороге поймал четыре сбоя: гонку в предварительных проверках, сорвавшуюся загрузку бинарников, блокировку выселения из-за политики доступности и сетевой глюк на одном узле. Все разобраны на месте, без отката.
Результат: оба кластера на одной версии, все узлы в строю, базы и очереди в порядке. Тем же заходом обновил операционную систему и ядро на всех восьми узлах - окно недоступности управляющего слоя составило пару минут, рабочая нагрузка не прерывалась.