Почему Kubernetes устанавливает ограничение дискового давления на мой узел?

#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"