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

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

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

Я что-то упустил? Или это проблема с диаграммой? 6,36 ГБ выделяемой памяти

Pod убит при использовании 4,19 ГБ

решение1

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

Allocatableэто значение Capacityминус Reservedи Eviction Threshold.

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

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

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

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

Возвращаемые выходные данные содержат поля «Емкость» и «Выделяемое» с измерениями для эфемерного хранилища, памяти и ЦП.

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

Allocatable = Capacity - Reserved - Eviction Threshold

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

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

Связанный контент