Я тестирую 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 резервирует следующее: