Назад | Перейти на главную страницу

GKE kill pod, когда инструмент мониторинга все еще показывает, что у нас есть память

Я тестирую GKE с их диаграммами мониторинга по умолчанию.
В сводке по кластеру говорится, что каждый узел (n2-custom-4-8192) имеет 6,36 ГБ памяти.
На странице сведений об узле я вижу, что пик «Используется» равен 4,19, когда модуль убит.

Я что-то упускаю? Или это проблема с графиком?

В этом случае все работает по назначению. Я думаю, вы пропустили информацию о Eviction threshold.

Allocatable это ценность Capacity минус Reserved и Eviction Threshold.

В GKE документация Распределенные ресурсы узла вы можете найти информацию о распределении ресурсов.

Некоторые ресурсы узла требуются для запуска GKE и компоненты узла Kubernetes, необходимые для того, чтобы этот узел функционировал как часть вашего cluster. Таким образом, вы можете заметить несоответствие между общими ресурсами вашего узла (как указано в документации по типу компьютера) и ресурсами узла. allocatable ресурсы в GKE. Поскольку машины большего размера, как правило, работают больше containers (и, соответственно, больше модулей), количество ресурсов, которые GKE резервы для Kubernetes components масштабируется вверх для более крупных машин. Windows Server nodes также требуют more resources чем типичный Linux node. Узлам требуются дополнительные ресурсы для учета работы ОС Windows и компонентов Windows Server, которые не могут работать в контейнерах.

Чтобы проверить доступные для узла ресурсы в кластере, выполните следующую команду:

$ kubectl describe node ${NodeName} | grep Allocatable -B 7 -A 6

Возвращаемый результат содержит поля Capacity и Allocatable с измерениями для эфемерного хранилища, памяти и ЦП.

Если вы прокрутите немного ниже до Выделяемая память и ресурсы ЦП вы прочтете, что распределяемые ресурсы рассчитываются следующим образом:

Allocatable = Capacity - Reserved - Eviction Threshold

Для ресурсов памяти GKE резервирует следующее:

  • 255 МБ памяти для машин с объемом памяти менее 1 ГБ
  • 25% первых 4 ГБ памяти
  • 20% следующих 4 ГБ памяти (до 8 ГБ)
  • 10% следующих 8 ГБ памяти (до 16 ГБ)
  • 6% от следующих 112 ГБ памяти (до 128 ГБ)
  • 2% любой памяти выше 128 ГБ