• Русский
  • Limit Range

    Содержание

    Понимание Limit Range

    Обратитесь к официальной документации Kubernetes: Limit Ranges

    Использование Kubernetes LimitRange в качестве admission controller — это ограничение ресурсов на уровне контейнера или Pod. Он устанавливает значения запросов по умолчанию, лимиты и максимальные значения для контейнеров или Pod, созданных после создания или обновления LimitRange, при этом постоянно контролируя использование ресурсов контейнером, чтобы гарантировать, что никакие ресурсы не превышают определённые максимальные значения в пределах namespace.

    Запрос ресурсов контейнера — это соотношение между лимитами ресурсов и overcommitment кластера. Значения запросов ресурсов служат ориентиром и критерием для scheduler при планировании контейнеров. Scheduler проверяет доступные ресурсы для каждого узла (общие ресурсы - сумма запросов ресурсов контейнеров в Pod, запланированных на узле). Если суммарные запросы ресурсов нового контейнера Pod превышают оставшиеся доступные ресурсы узла, этот Pod не будет запланирован на данном узле.

    LimitRange — это admission controller:

    • Он применяет значения запросов и лимитов по умолчанию для всех контейнеров, которые не задают требования к вычислительным ресурсам.
    • Он отслеживает использование, чтобы убедиться, что оно не превышает максимумы ресурсов и соотношения, определённые в любом LimitRange, присутствующем в namespace.

    Включает следующие настройки

    РесурсПоле
    CPU
    • Default Request
    • Limit
    • Max
    Memory
    • Default Request
    • Limit
    • Max

    Создание Limit Range с помощью CLI

    Примеры YAML файлов

    # example-limitrange.yaml
    apiVersion: v1
    kind: LimitRange
    metadata:
      name: example-limitrange
      namespace: example
    spec:
      limits:
        - default:
            cpu: 100m
            memory: 100Mi
          defaultRequest:
            cpu: 50m
            memory: 50Mi
          max:
            cpu: 1000m
            memory: 1000Mi
          type: Container
    

    Создание через YAML файл

    kubectl apply -f example-limitrange.yaml

    Создание напрямую через командную строку

    kubectl create limitrange example-limitrange --namespace=example --default='cpu=100m,memory=100Mi' --default-request='cpu=50m,memory=50Mi' --max='cpu=1000m,memory=1000Mi'