бесконечному циклу перезапусков (crash loop). Чтобы решить эту проблему, в Kubernetes 1.36 появилось несколько механизмов: DRA (Dynamic Resource Allocation, динамическое распределение ресурсов), стабильная начиная с версии 1.34 и предлагающая объектную модель вместо простого счётчика; приоритизированный список (firstAvailable) для резервных устройств; отображение состояния здоровья устройства в статусе пода; taints и tolerations для устройств; а также условия привязки устройств (device binding conditions) и другие возможности. Автор разворачивает тестовый стенд на управляемом Kubernetes 1.36 от VK Cloud с GPU-узлом и имитирует отказ GPU, «горячо» отключая устройство с интерфейсом PCIe (Peripheral Component Interconnect Express). Он показывает, что узел помечает устройство как неисправное, а число доступных ресурсов (allocatable) уменьшается, но под продолжает перезапускаться на том же неработающем GPU без какого-либо перепланирования (rescheduling). В заключение статья объясняет, почему в Kubernetes отсутствует встроенный механизм вытеснения (descheduling) для подов в состоянии CrashLoopBackOff, и упоминает самодельные (DIY) решения, такие как контроллеры проверки состояния узлов, которые в случае проблемы просто убивают весь узел целиком — что является довольно грубым инструментом.