Коэффициент Overcommit

Содержание

Понимание коэффициента overcommit ресурсов в Namespace

позволяет задавать коэффициент overcommit ресурсов (CPU и памяти) для каждого namespace. Это управляет соотношением между лимитами контейнеров (максимальное использование) и запросами (гарантированный минимум) внутри данного namespace, оптимизируя использование ресурсов.

Настраивая этот коэффициент, вы обеспечиваете, что заданные пользователем лимиты и запросы контейнеров остаются в разумных пределах, повышая общую эффективность использования ресурсов кластера.

Ключевые понятия

  • Лимиты: максимальное количество ресурса, которое контейнер может использовать. Превышение лимитов может привести к троттлингу (CPU) или завершению процесса (память).
  • Запросы: гарантированный минимум ресурса, необходимый контейнеру. Kubernetes планирует размещение контейнеров на основе этих запросов.
  • Коэффициент Overcommit: Лимиты / Запросы. Эта настройка определяет допустимый диапазон этого соотношения внутри namespace, балансируя между гарантиями ресурсов и предотвращением их чрезмерного потребления.

Основные возможности

  • Повышение плотности использования ресурсов и стабильности приложений в namespace за счёт установки подходящего коэффициента overcommit для управления балансом между лимитами и запросами ресурсов.

Пример

Предположим, что коэффициент overcommit для namespace установлен в 2. При создании приложения и указании лимита CPU в 4c, соответствующее значение запроса CPU рассчитывается как:

CPU Request = CPU Limit / Overcommit ratio. Таким образом, запрос CPU будет 4c / 2 = 2c.

Определение CRD

# example-namespace-overcommit.yaml
apiVersion: resource.alauda.io/v1
kind: NamespaceResourceRatio
metadata:
  namespace: example
  name: example-namespace-overcommit
spec:
  cpu: 3 # Отсутствие этого поля означает наследование коэффициента overcommit кластера; 0 — отсутствие ограничения.
  memory: 4 # Отсутствие этого поля означает наследование коэффициента overcommit кластера; 0 — отсутствие ограничения.
status:
  clusterCPU: 2 # Коэффициент overcommit кластера
  clusterMemory: 3

Создание коэффициента overcommit с помощью CLI

kubectl apply -f example-namespace-overcommit.yaml

Создание/обновление коэффициента overcommit через веб-консоль

Позволяет настроить коэффициент overcommit для namespace, чтобы управлять соотношением между лимитами и запросами ресурсов. Это гарантирует, что выделение ресурсов контейнерам остаётся в заданных пределах, улучшая использование ресурсов кластера.

Меры предосторожности

Если в кластере используется виртуализация узлов (например, виртуальные узлы), перед настройкой oversubscription для виртуальных машин отключите oversubscription на уровне кластера/namespace.

Порядок действий

  1. Перейдите в Project Management и откройте Namespaces > Список Namespace.

  2. Нажмите на целевой Namespace name.

  3. Выберите Actions > Update Overcommit.

  4. Выберите подходящий способ настройки коэффициента overcommit для CPU или памяти в namespace.

ПараметрОписание
Inherit from Cluster
  • Namespace наследует коэффициент oversubscription кластера.
  • Пример: если коэффициент CPU/памяти кластера равен 4, то namespace по умолчанию будет 4.
  • Запросы контейнера = лимит / коэффициент кластера.
  • Если лимит не установлен, используется квота контейнера по умолчанию в namespace.
Custom
  • Установить специфичный для namespace коэффициент (целое число > 1).
  • Пример: коэффициент кластера = 4, коэффициент namespace = 2 → запросы = лимит / 2.
  • Оставьте пустым, чтобы отключить oversubscription для namespace.
  1. Нажмите Update.

Примечание: Изменения применяются только к вновь создаваемым Pod. Существующие Pod сохраняют свои исходные запросы до пересоздания.