Kubelet: Observed a panic: «invalid memory address or nil pointer dereference»

При добавлении CPU на ноду, kubelet не запускается, в логах видим ошибку, если выбрать последние записи:

journalctl -u kubelet -n 1000
Observed a panic: "invalid memory address or nil pointer dereference" (runtime error: invalid memory address or nil pointer dereference

Проблема в том что скорее всего kubelet запущен с опцией –cpu-manager-policy=static, который фиксирует конфигурацию по CPU в файле /var/lib/kubelet/cpu_manager_state:

cat /var/lib/kubelet/cpu_manager_state
{"policyName":"static","defaultCpuSet":"0-9","checksum":688938613}

Конфиг kubelet:

/etc/systemd/system/kubelet.service


Чтобы избавиться от ошибки, нужно остановить kubelet, удалить файл cpu_manager_state и перезагрузить ноду:

systemctl stop kubelet
rm -f /var/lib/kubelet/cpu_manager_state
reboot

При условии что node выведена из кластера cordon/uncordon и включен автозапуск kubelet.
Замену policy со static на dynamic производить не рекомендую, так как при static, если под pod реквесты и лимиты равны и это целое число – то под приложения выделяются ядра, эксклюзивно и никаких переключений контекста тротлинга и тому подобных.