#kubernetes #kubelet
#kubernetes #kubelet
Вопрос:
Как выяснить, почему установлено ограничение?
Вот моя конфигурация выселения из конфигурации kubelet:
Kubelet-config:
kubeletArguments:
eviction-soft:
- memory.available<100Mi
- nodefs.available<100Mi
- nodefs.inodesFree<1%
- imagefs.available<100Mi
- imagefs.inodesFree<1%
eviction-soft-grace-period:
- memory.available=1m30s
- nodefs.available=1m30s
- nodefs.inodesFree=1m30s
- imagefs.available=1m30s
- imagefs.inodesFree=1m30s
eviction-hard:
- memory.available<100Mi
- nodefs.available<100Mi
- nodefs.inodesFree<1%
- imagefs.available<100Mi
- imagefs.inodesFree<1%
dh -f
вывод показывает, что из общего доступного пространства 20 ГБ доступно 3,8 гигабайта. (> 100 мбаЙт, как настроено), поэтому ни мягкий, ни жесткий порог удаления не достигнут. df -i
говорит, что используется только 20% индексов.
Я попытался выяснить причину, выполнив выдачу sudo journalctl -u kubelet -b | grep pressure
, но не нашел ничего полезного. Может быть, кто-нибудь может предложить лучшие ключевые слова?
Комментарии:
1. Это единственная файловая система? Сколько inode доступно (
df -i
)? Пожалуйста, публикуйте форматированный код, а не скриншоты. Скриншоты прерывают поиск, копирование и вставку и становятся менее доступными.2. @BMitch, да, это единственный и только 20% используемых индексов.
Ответ №1:
Решено. Оказалось, что я использовал неправильный синтаксис для настройки пороговых значений. Вот правильный способ установить эти:
evictionSoft:
memory.available: "100Mi"
nodefs.available: "100Mi"
nodefs.inodesFree: "1%"
imagefs.available: "100Mi"
imagefs.inodesFree: "1%"
evictionSoftGracePeriod:
memory.available: 5m
nodefs.available: 5m
nodefs.inodesFree: 5m
imagefs.available: 5m
imagefs.inodesFree: 5m
evictionHard:
memory.available: "100Mi"
nodefs.available: "100Mi"
nodefs.inodesFree: "1%"
imagefs.available: "100Mi"
imagefs.inodesFree: "1%"
(файл конфигурации /var/lib/kubelet/config.yaml
в моем случае находится по адресу)
Затем kubelet необходимо перезапустить: sudo systemctl restart kubelet
И вот полезная команда для получения журналов kubelet, чтобы проверить, правильно ли он запущен: journalctl -u kubelet --since "1min ago"