
Глядя на мой кластер GKE 1.23 в разделе «наблюдаемость», я вижу использование памяти 200%+. Разбивка показывает, что большая часть приходится на пространство v2k-system
имен, которое, насколько мне известно, является внутренними компонентами GKE. Почему он использует более чем в 2 раза больше памяти, чем запрашивает на самом деле? У меня есть собственные поды, пытающиеся получить память и терпящие неудачу — я подозреваю, что это потому, что поды v2k-system занимают всю память
решение1
Да, вы правы, это больше 100% и внутренний GKE.
Использование памяти для всех контейнеров в кластере делится на общее количество запросов памяти для этих контейнеров. Это может быть больше 100%, если общее использование превышает общее количество запросов.
Использование памяти: Использование памяти контейнеров, которое можно отнести к ресурсу в течение выбранного периода времени.
Используемая метрика:kubernetes.io/container/memory/request_utilization. Этот API метрик предлагает базовый набор метрик для поддержки автоматического масштабирования и аналогичных вариантов использования. Этот API делает доступной информацию об использовании ресурсов для узлов и модулей, включая метрики для ЦП и памяти. Если вы развернетеAPI метрикв ваш кластер, клиенты API Kubernetes могут затем запрашивать эту информацию.
Доступны 2 типа памяти:
1)Изгоняемая памятьэто память, которая будет удалена из ресурса, если использование станет слишком высоким.
2)Неизгладимая памятьиспользование превышает лимиты, контейнер может быть завершен. Для получения дополнительной информации об ограничениях ресурсов см. и используйте Запросы и ограниченияэто может помочь решить вашу проблему.
Контейнеру гарантировано будет предоставлено столько памяти, сколько он запросит, но ему не разрешается использовать больше памяти, чем установлено ограничением.Назначение ресурсов памяти контейнерам и модулямЧтобы получить больше информации.