Три часа ночи: дашборд K3s отрапортовал об успешном плановом переводе воркера в allowScheduling=false. Мониторинг умиротворенно зеленел, но stateful приложения внезапно улетели в бесконечный Input/Output Error на операциях записи. Поверхностный Kubernetes-контроллер считал ноду чистой, а ядро Linux задыхалось от зависших сессий блочного устройства. Что произошло на самом деле: Longhorn использовал iSCSI-транспорт для монтирования томов. При запрете планирования контроллер не сделал graceful detach реплик, а kubelet начал обрывать контексты без учета состояния open file descriptors. В итоге демон tgtd на ноде ушел в uninterruptible sleep (состояние D), заблокировав кэш страниц ядра. Команда cat /proc/diskstats показывала нулевой iops, а dmesg уже заполнялся строками block i/o timeout. Диагностировать этот ад через kubectl бесполезно, он врет. Спускайтесь на уровень bare-metal: проверяйте сокеты iSCSI через iscsiadm -m session -v и ищите процессы в D-state командой ps aux | awk '$8==...

Три часа ночи: дашборд K3s отрапортовал об успешном плановом переводе воркера в allowScheduling=false | Сетка — социальная сеть от hh.ru