0Pricing
DevOps Bootcamp · Урок

Квоты ресурсов и ограничения диапазонов

Предотвращайте проблемы из-за шумных соседей и неконтролируемых рабочих нагрузок, задавая квоты ресурсов на уровне пространства имён и ограничения диапазонов для каждого модуля Pod.

«Квоты ресурсов и ограничения диапазонов» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.

Ограничения для общих кластеров

В общем кластере одна команда может случайно потребить все ресурсы. ResourceQuotas и LimitRanges служат ограничителями, поддерживают справедливое распределение ресурсов между пространствами имён и предотвращают сбои.

Что такое ResourceQuota

ResourceQuota ограничивает общий объём ресурсов, который может потреблять пространство имён: CPU, память и количество объектов, таких как поды или службы.

Квота вычислительных ресурсов

Эта квота ограничивает суммарные запросы и ограничения для всех подов в пространстве имён.

apiVersion: v1
kind: ResourceQuota
metadata:
  name: team-compute
  namespace: team-a
spec:
  hard:
    requests.cpu: '4'
    requests.memory: 8Gi
    limits.cpu: '8'
    limits.memory: 16Gi

Квоты на количество объектов

Квоты также могут ограничивать количество объектов каждого типа, предотвращая случайное неконтролируемое разрастание.

spec:
  hard:
    pods: '20'
    services: '5'
    persistentvolumeclaims: '10'

Правило применения квоты

Если задана ResourceQuota для вычислительных ресурсов, каждый под обязан объявить запросы и ограничения, иначе он будет отклонён. Квота не может учитывать поды без ограничений.

Проверка использования квоты

Проверяйте, какая доля квоты используется в данный момент.

kubectl describe resourcequota team-compute -n team-a
# Resource         Used  Hard
# requests.cpu     2     4
# requests.memory  3Gi   8Gi

Что такое LimitRange

LimitRange задаёт значения по умолчанию и ограничения для отдельных объектов в пространстве имён, поэтому отдельные поды остаются ограниченными, даже если разработчик забыл задать значения.

Значения по умолчанию и ограничения

LimitRange может добавлять запросы и ограничения по умолчанию, а также задавать минимальные и максимальные значения для каждого контейнера.

apiVersion: v1
kind: LimitRange
metadata:
  name: container-limits
  namespace: team-a
spec:
  limits:
  - type: Container
    default:
      cpu: 500m
      memory: 256Mi
    defaultRequest:
      cpu: 250m
      memory: 128Mi
    max:
      cpu: '2'
      memory: 1Gi

Как они работают вместе

LimitRange заполняет значения по умолчанию для каждого контейнера, а затем ResourceQuota суммирует всё и сравнивает с ограничением пространства имён. Вместе они обеспечивают разумный размер каждого пода и справедливый общий объём ресурсов для пространства имён.

Устранение причин отклонения

Если под отклонён, ошибка указывает нарушенную политику. Внимательно прочитайте её: она сообщает, превысили ли Вы квоту или нарушили ограничение LimitRange.

# exceeded quota: team-compute, requested: requests.cpu=2, used: 3, limited: 4
# maximum cpu usage per Container is 2, but limit is 4

Советы для промышленной эксплуатации

  • Задайте LimitRange, чтобы забытые запросы не нарушали квоту
  • Рассчитывайте квоты по реальному использованию, оставляя запас для всплесков нагрузки
  • Регулярно проверяйте использование и корректируйте квоты по мере роста команд

Быстрая проверка

Проверьте, насколько хорошо Вы понимаете ограничения пространства имён.

Итоги

Вы научились обеспечивать справедливое распределение ресурсов с помощью ResourceQuotas (ограничений на вычислительные ресурсы и количество объектов в пространстве имён) и LimitRanges (значений по умолчанию и ограничений для отдельных контейнеров). При совместном использовании они предотвращают проблемы «шумного соседа» и поддерживают стабильность общих кластеров — это важная практика промышленной эксплуатации.

Часто задаваемые вопросы

Урок «Квоты ресурсов и ограничения диапазонов» бесплатный?

Да — полный текст урока «Квоты ресурсов и ограничения диапазонов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.

Чему я научусь в уроке «Квоты ресурсов и ограничения диапазонов»?

Предотвращайте проблемы из-за шумных соседей и неконтролируемых рабочих нагрузок, задавая квоты ресурсов на уровне пространства имён и ограничения диапазонов для каждого модуля Pod. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать DevOps Bootcamp?

Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Квоты ресурсов и ограничения диапазонов»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке DevOps Bootcamp?

Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Диагностика распространённых проблем
  2. Отладка Pods и сервисов
  3. Лучшие практики и советы для эксплуатации
  4. Квоты ресурсов и ограничения диапазонов
← Назад к DevOps Bootcamp