• Русский
  • Коэффициент 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. Перейдите в Управление проектами и откройте Namespaces > Список Namespace.

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

    3. Выберите Действия > Обновить Overcommit.

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

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

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