Постмортем: kubeadm кластер протух по сертификатам, прод лежал 3.5 часа в воскресенье

Рейтинг: 61% · 6 голосов
Docker, Kubernetes, Helm, Terraform, Ansible, GitLab CI, GitHub Actions: автоматизация деплоя, инфраструктура как код, мониторинг и observability.
Ответить
Аватара пользователя
Omoto
Сообщения: 120
Зарегистрирован: 12 май 2026, 03:05

Постмортем: kubeadm кластер протух по сертификатам, прод лежал 3.5 часа в воскресенье

Сообщение Omoto »

Расскажу, как мы в воскресенье лежали с шести утра до полдесятого, чтобы вы так не делали.

Вводные: kubeadm кластер на 1.31, три мастера, 12 воркеров, железо в Selectel. Ставил его админ, который уволился прошлой весной. С тех пор кластер никто не апгрейдил, потому что работает же.

В субботу ночью, ровно через год после последнего kubeadm upgrade, протухли сертификаты control plane. Кто не в курсе: kubeadm выписывает их на год и продлевает при каждом апгрейде кластера. Нет апгрейдов, нет и продления.

Дальше цепочка. apiserver перестал принимать соединения, kubectl с любой машины отдает x509: certificate has expired or is not yet valid. Поды при этом живут, трафик идет, так что алерт на api down дежурный в три ночи увидел и решил, что флапает мониторинг (отдельный разговор). А в шесть утра unattended-upgrades перезагрузил две ноды, kubelet после ребута не смог зарегистрироваться, поды с этих нод никуда не переехали, потому что шедулеру нечем шедулить. Минус треть капасити, и на одной из этих нод жили оба пода ингреса. Все, приехали.

Чинили так: на каждом мастере kubeadm certs renew all, потом перезапуск статик подов (унесли манифесты из /etc/kubernetes/manifests, подождали, вернули), забрали свежий admin.conf. Клиентские серты кубелетов ротация продлевала сама, тут повезло. Итого даунтайм 3 часа 27 минут, из них почти час мы просто выясняли, у кого вообще есть ssh на мастера.

Выводы для себя написали, но интересно, как у людей: ставите отдельный алерт на сроки сертов или просто апгрейдитесь по расписанию и не паритесь?
👍 ❤️1 🔥1 😄1 🤔
✔ Лучший ответ сформирован автоматически — vault_lord
У нас ровно это же случилось в 2023, один в один, вплоть до воскресенья. После того инцидента посчитали и уехали на managed в Yandex Cloud. Час простоя нам стоил порядка 400к выручки, а за control plane облако берет копейки на этом фоне, серты и апгрейды мастеров теперь не моя проблема в принципе. VK Cloud и Selectel managed тоже смотрели, по деньгам сопоставимо, остались у Яндекса из-за остально…
Перейти к ответу →
Аватара пользователя
Tracyw
Сообщения: 11
Зарегистрирован: 11 май 2026, 09:19

Re: Постмортем: kubeadm кластер протух по сертификатам, прод лежал 3.5 часа в воскресенье

Сообщение Tracyw »

@Omoto, Классика жанра, через это проходит каждый, кто унаследовал kubeadm кластер. По мониторингу: проще всего blackbox-exporter с метрикой probe_ssl_earliest_cert_expiry на порт 6443, алерт за 30 дней. Плюс kubeadm certs check-expiration в крон с выводом в телегу. Костыль, но за 10 минут закрывает вопрос навсегда.

И обновляйтесь уже. 1.31 без поддержки с прошлого лета, вы там на минном поле и без сертов.
👍2 ❤️ 🔥 😄 🤔1
Аватара пользователя
mystiga
Сообщения: 16
Зарегистрирован: 11 май 2026, 12:47

Re: Постмортем: kubeadm кластер протух по сертификатам, прод лежал 3.5 часа в воскресенье

Сообщение mystiga »

не апгрейдили кластер 14 месяцев и удивляетесь, что он протух. это в доках kubeadm написано буквально первой строкой в разделе про PKI. повезло еще, что etcd-шные пиринговые серты не легли в более веселый момент, а то восстанавливали бы кворум, а не манифесты туда-сюда таскали
👍 ❤️ 🔥 😄2 🤔
Аватара пользователя
Mom2
Сообщения: 19
Зарегистрирован: 11 май 2026, 03:18

Re: Постмортем: kubeadm кластер протух по сертификатам, прод лежал 3.5 часа в воскресенье

Сообщение Mom2 »

А почему у вас на нодах кубера вообще включен unattended-upgrades с авторебутом? Нода это скот, а не питомец, перезагружать ее должен оркестратор через drain, а не апт по своему расписанию. Поставьте kured, он хотя бы ноды по одной ребутает и с дрейном. Я бы в постмортеме это записал первым пунктом, серты у вас вторичная причина, без внезапного ребута вы бы тихо починились в понедельник утром.
👍2 ❤️1 🔥1 😄 🤔
Аватара пользователя
vault_lord
Сообщения: 6
Зарегистрирован: 27 май 2026, 11:32

Re: Постмортем: kubeadm кластер протух по сертификатам, прод лежал 3.5 часа в воскресенье

Сообщение vault_lord »

✔ Лучший ответ — сформирован автоматически
У нас ровно это же случилось в 2023, один в один, вплоть до воскресенья. После того инцидента посчитали и уехали на managed в Yandex Cloud. Час простоя нам стоил порядка 400к выручки, а за control plane облако берет копейки на этом фоне, серты и апгрейды мастеров теперь не моя проблема в принципе. VK Cloud и Selectel managed тоже смотрели, по деньгам сопоставимо, остались у Яндекса из-за остальной инфры.

Понимаю, что у вас железо и так просто не переедешь, но если кластер некому обслуживать (а у вас по описанию именно это), managed честнее, чем делать вид, что админ когда-нибудь найдется.
👍1 ❤️1 🔥2 😄 🤔
Аватара пользователя
Kutz
Сообщения: 71
Зарегистрирован: 16 май 2026, 02:21

Re: Постмортем: kubeadm кластер протух по сертификатам, прод лежал 3.5 часа в воскресенье

Сообщение Kutz »

а зачем вам вообще kubeadm в 2026? возьмите k3s и забудьте, там сертификаты сами ротируются
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
qemukun
Сообщения: 29
Зарегистрирован: 15 май 2026, 03:32

Re: Постмортем: kubeadm кластер протух по сертификатам, прод лежал 3.5 часа в воскресенье

Сообщение qemukun »

в k3s та же самая история, серты на год и продлеваются только при рестарте сервиса ближе к сроку истечения. не рестартили сервер год, получите тот же x509. так что не вариант, а та же мина, только сбоку. читайте, что советуете
👍2 ❤️ 🔥 😄 🤔1
Аватара пользователя
smith_zhenya
Сообщения: 32
Зарегистрирован: 11 май 2026, 02:02

Re: Постмортем: kubeadm кластер протух по сертификатам, прод лежал 3.5 часа в воскресенье

Сообщение smith_zhenya »

@Omoto, ОП на связи, апдейт. Поставили blackbox с алертом за 30 дней, check-expiration в крон, доступ на мастера теперь у троих, а не у одного. Запланировали апгрейд 1.31 -> 1.32 -> 1.33 на ближайшие два окна. Тому, кто писал про unattended-upgrades: справедливо, авторебут выключили, ребутаем через kured. За k3s спасибо, но перетаскивать 15 машин ради того же набора граблей не будем.
👍2 ❤️1 🔥 😄1 🤔
Ответить
Поделиться темой: ✈ Telegram VK

Вернуться в «DevOps и CI/CD»

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

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