Разбор инцидентов
Разборы реальных инцидентов: первая неверная гипотеза, как доказали первопричину и что изменили после.
9 статей
- Экран загрузки был retry-циклом, а не зависанием — и ребут был не нуженИгра на моей Linux-машине зависала на экране загрузки, и известным лекарством был полный ребут. Пять секунд счётчиков из /proc показали горячий retry-цикл, который заканчивается одним SIGTERM.
- NotReady шесть часов, а нода всё это время была живаВсе сигналы говорили, что нода мертва. На деле она задыхалась от нехватки памяти, а очевидный фикс — удалить ноду и принудительно отцепить том — был в одной команде от порчи базы.
- Четыре проверки, которые врали, пока система была здороваЗа один день миграций платформы четыре проверки сообщали об ошибке, хотя всё было в порядке. Когда один сигнал спорит со всеми остальными, первым подозревайте сам сигнал.
- Vault запечатывался сам. Причиной была 15-минутная заморозка VM ниже кластераЧетыре seal'а Vault за три недели, каждый разбирали как отдельный инцидент. Анализ пауз в journald показал, что гипервизор замораживает VM во время бэкапа, а Longhorn превращает это в каскад.
- Одна забытая DHCP-опция положила весь Kubernetes-кластерПосле ребута хоста около пятидесяти подов ушли в крашлуп, хотя все ноды были Ready. Причина — забытая DHCP-опция classless routes, которая молча убрала шлюз по умолчанию.
- Три инцидента, которые были одним: IP базы, зашитый в конфиг500 на логине, бэкенды в CrashLoopBackOff и зависший деплой выглядели как три проблемы. Все три оказались одним захардкоженным IP базы в конфиге pgbouncer.
- «Ошибки диска» оказались OOM: как тома Longhorn потеряли бэкендEIO, ext4 в read-only, повреждённый datadir MySQL и запечатанный Vault выглядели как умирающий диск. dmesg хоста показал OOM на всю ноду, который первым убил instance-manager Longhorn.
- Том Longhorn, который не хотел расти: attachment ticket, прибитый к плохой нодеPVC бесконечно висел в Resizing, а Longhorn каждые пять секунд повторял расширение без единой ошибки. Устаревший attachment ticket держал том на одной нездоровой ноде.
- Helm пишет «another operation is in progress», а ничего не запущеноОтменённая CI-джоба оставила два Helm-релиза в pending-upgrade и заблокировала все деплои. Как найти lock, безопасно его снять и проверить весь namespace разом.