Обратитесь к официальной документации Kubernetes: Resource Quotas
Используются для ограничения ресурсов, доступных для конкретного namespace. Общее использование ресурсов всеми Pod в namespace (за исключением тех, что находятся в состоянии Terminating
) не должно превышать квоту.
Resource Requests: Определяют минимальные ресурсы (например, CPU, память), необходимые контейнеру, помогая Kubernetes Scheduler разместить Pod на узле с достаточной емкостью.
Resource Limits: Определяют максимальные ресурсы, которые контейнер может потреблять, предотвращая исчерпание ресурсов и обеспечивая стабильность кластера.
Если ресурс отмечен как
Unlimited
, явная квота не применяется, но использование не может превышать доступную емкость кластера.
Resource Quotas отслеживают суммарное потребление ресурсов (например, лимиты контейнеров, новые Pod или PVC) внутри namespace.
Поддерживаемые типы квот
Поле | Описание |
---|---|
Resource Requests | Общие запрошенные ресурсы для всех Pod в namespace:
|
Resource Limits | Общие лимиты ресурсов для всех Pod в namespace:
|
Number of Pods | Максимальное количество Pod, разрешенное в namespace. |
Примечание:
Unlimited
означает, что namespace может использовать оставшиеся ресурсы проекта для данного типа ресурса.Создать через YAML файл
Создать напрямую через командную строку
Типы квот:
Примечание: Убедитесь, что storage class предварительно назначен проекту, содержащему namespace.
Расширенные квоты ресурсов определяются через ConfigMap. Если ConfigMap отсутствует, категория ресурса не отображается.
Описание полей ConfigMap
Поле | Описание |
---|---|
data.dataType | Тип данных (например, vGPU ). |
data.defaultValue | Значение по умолчанию (пусто = без значения по умолчанию). |
data.descriptionEn | Текст подсказки на английском (отображается при наведении на поле). |
data.descriptionZh | Текст подсказки на китайском (отображается при наведении на поле). |
data.excludeResources | Взаимоисключающие ресурсы (через запятую). |
data.group | Группа ресурсов (например, MPS ). |
data.groupI18n | Название группы на английском/китайском для выпадающих списков UI. |
data.key | Определяет значение ключа. Словарь конфигурации может описывать только один ключ. |
data.labelEn/data.labelZh | Название ресурса на английском/китайском, которое можно просматривать и выбирать в выпадающих списках, соответствующих типам квот. Это поле выполняет ту же функцию, что и data.groupI18n, но применяется только когда у одного ресурса одно значение, обеспечивая совместимость с устаревшей версией словаря конфигурации (ConfigMap). |
data.limits | Указывает, нужно ли настраивать лимиты для ресурсов. Допустимые значения: disabled — лимиты не настраиваются, required — обязательный ввод, optional — необязательный ввод. |
data.requests | Указывает, нужно ли настраивать requests для ресурсов. Допустимые значения: disabled — requests не настраиваются, required — обязательный ввод, optional — необязательный ввод, fromLimits — использовать такую же конфигурацию, как для limits. |
data.relatedResources | Связанные ресурсы. Поле зарезервировано и в настоящее время не используется. |
data.resourceUnit | Единица ресурса (например, cores , GiB ). Ввод на китайском не поддерживается. |
data.runtimeClassName | Класс runtime (по умолчанию: nvidia для GPU). |
metadata.labels | Обязательные метки:
|
metadata.name | Формат: cf-crl-<*groupName*>-<*name*> , где
|
metadata.namespace | Должен быть kube-public |
Формат имен пользовательских квот должен соответствовать следующим требованиям: