Вопрос или проблема
Сегодня, когда я добавил новый узел kubernetes (v1.30.0) в кластер, новый узел показывает ошибку:
недопустимая емкость 0 на файловой системе образа
В новом узле я использую containerd, похоже, не удается найти размер файловой системы образа? Это вывод команды lsblk
:
root@iZhp33cq6mvrjo8mzatgrmZ:/etc/containerd# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
vda 254:0 0 40G 0 диск
├─vda1 254:1 0 1M 0 часть
├─vda2 254:2 0 191M 0 часть /boot/efi
└─vda3 254:3 0 39.8G 0 часть /
Вот информация о версии containerd:
root@iZhp33cq6mvrjo8mzatgrmZ:/etc/containerd# containerd --version
containerd github.com/containerd/containerd 1.6.20~ds1 1.6.20~ds1-1+b1
Я пропустил какую-то настройку для новых узлов? Поды нового узла всегда ожидают. Что мне делать, чтобы исправить эту проблему?
Ответ или решение
Ошибка "invalid capacity 0 on image filesystem" при добавлении нового узла Kubernetes в кластер указывает на то, что система не может определить доступное пространство для хранения образов контейнеров. Это может быть связано с несколькими причинами, и ниже рассмотрены шаги, которые помогут устранить данную проблему.
1. Проверка конфигурации контейнера
Первым делом убедитесь, что в конфигурационном файле containerd
(обычно находится по пути /etc/containerd/config.toml
) правильно указаны параметры для хранения образов и имеется ли доступное место на диске. Найдите секцию [plugins."io.containerd.grpc.v1.cri".registry]
и убедитесь, что все параметры указаны корректно.
2. Проверка дисковых разделов
Согласно выводу команды lsblk
, на вашем узле есть один диск размером 40 ГБ, из которых большая часть используется для корневой файловой системы (/
). Это может создавать проблемы, если на узле недостаточно свободного пространства для хранения образов контейнеров.
Используйте команды, такие как df -h
, чтобы проверить использование дисков. Убедитесь, что у вас достаточно доступного пространства на корневом разделе для работы с образами контейнеров.
Если место действительно заканчивается, рассмотрите возможность увеличения дискового пространства или удаления ненужных файлов.
3. Проверьте параметры безопасности и ограничений ресурсов
Проверьте, нет ли установленных ограничений на уровень ресурсов для узла. Например, Kubernetes может также блокировать ресурсы на уровне ResourceQuotas
или LimitRanges
в Namespace, если они настроены. Убедитесь, что в вашем случае нет ограничений, которые могут вызывать проблемы с созданием и запуском подов.
4. Обновление компонентов Kubernetes
Ваши версии Kubernetes и containerd
могут также иметь значение. Убедитесь, что используемая версия containerd
совместима с версией Kubernetes (v1.30.0). Попробуйте обновить containerd
до последней стабильной версии, если это возможно.
5. Перезапуск службы containerd
Иногда просто перезапуск службы containerd
может помочь решить проблемы. Вы можете выполнить это, используя следующие команды:
sudo systemctl restart containerd
После перезапуска убедитесь, что containerd
запустился без ошибок, используя просмотр логов:
sudo journalctl -u containerd -f
6. Логи Kubernetes
Если проблема не устранена, проверьте журналы Kubernetes для получения дополнительной информации. Используйте команду:
kubectl logs <имя-узла>
Заключение
Ошибка "invalid capacity 0 on image filesystem" может возникнуть по нескольким причинам, связанным с конфигурацией, дисковым пространством и ресурсными ограничениями. Проверка каждой из вышеперечисленных областей поможет вам установить причину проблемы и успешно запустить новый узел в вашем кластере Kubernetes. Если после выполнения всех шагов проблема остаётся, возможно стоит обратиться за помощью в сообщество Kubernetes или на специализированные форумы.