Настройка квот
В качестве администратора вы можете использовать Alauda Build of Kueue для настройки квот с целью оптимизации распределения ресурсов и пропускной способности системы для пользовательских рабочих нагрузок. Вы можете настроить квоты для вычислительных ресурсов, таких как CPU, память, pods и GPU.
Вы можете настроить квоты в Alauda Build of Kueue, выполнив следующие шаги:
- Настроить cluster queue.
- Настроить resource flavor.
- Настроить local queue.
- Пользователи смогут отправлять свои рабочие нагрузки в local queue.
Содержание
1. Настройка cluster queue1.1. Предварительные требования1.2. Процедура2. Настройка resource flavor2.1. Предварительные требования2.2. Процедура3. Настройка local queue3.1. Предварительные требования3.2. Процедура4. Настройка локальной очереди по умолчанию4.1. Предварительные требования4.2. Процедура4.3. Проверка1. Настройка cluster queue
Cluster queue — это ресурс с областью действия на уровне кластера, представленный объектом ClusterQueue, который управляет пулом ресурсов, таких как GPU, CPU, память и pods. Cluster queue можно использовать для определения лимитов использования, квот для resource flavors, порядка потребления и правил справедливого распределения.
Примечание: cluster queue не готов к использованию, пока не будет настроен объект ResourceFlavor.
1.1. Предварительные требования
- Alauda Container Platform Web CLI имеет связь с вашим кластером.
- У вас есть права администратора кластера или роль
kueue-batch-admin-role.
1.2. Процедура
-
Создайте объект ClusterQueue в виде YAML-файла:
namespaceSelector: Определяет, какие пространства имён могут использовать ресурсы, управляемые этим cluster queue. ПустойnamespaceSelector, как показано в примере, означает, что все пространства имён могут использовать эти ресурсы.coveredResourcesдляdefault-flavor: Определяет типы ресурсов, управляемые cluster queue. В этом примере объектClusterQueueуправляет ресурсами CPU, памяти, pods и GPU.flavors.nameдляdefault-flavor: Определяет resource flavor, применяемый к перечисленным типам ресурсов. В этом примере resource flavordefault-flavorприменяется к ресурсам CPU, памяти, pods и GPU.resourcesдляdefault-flavor: Определяет требования к ресурсам для допуска заданий. Этот пример cluster queue допускает задания только при выполнении следующих условий:- Суммарный запрос CPU не превышает 9.
- Суммарный запрос памяти не превышает 36Gi.
- Общее количество pods не превышает 5.
- Суммарное количество задач GPU не превышает 20, если используется Alauda Build of Hami (см. callout 5).
- Суммарное количество запросов на ядра GPU не превышает 300, если используется Alauda Build of Hami.
- Суммарное количество запросов на память GPU не превышает 20480.
- Суммарный запрос GPU не превышает 100, если используется Alauda Build of NVIDIA GPU Device Plugin (см. callout 7).
coveredResourcesдляt4-flavor: Определяет требования к ресурсам для Alauda Build of Hami. Если вы не используете Alauda Build of Hami, удалите этот блок.flavors.nameдляt4-flavor: Определяет resource flavor, применяемый к перечисленным типам ресурсов. В этом примере resource flavort4-flavorприменяется к видеокартам Nvidia T4. Если вы не хотите настраивать квоты для конкретных типов карт, можно указатьdefault-flavor.coveredResourcesдляa30-flavor: Определяет требования к ресурсам для Alauda Build of NVIDIA GPU Device Plugin. Если вы не используете этот плагин, удалите этот блок.flavors.nameдляa30-flavor: Определяет resource flavor, применяемый к перечисленным типам ресурсов. В этом примере resource flavora30-flavorприменяется к видеокартам Nvidia A30. Если вы не хотите настраивать квоты для конкретных типов карт, можно указатьdefault-flavor.
-
Примените объект
ClusterQueue, выполнив следующую команду:
2. Настройка resource flavor
После настройки объекта ClusterQueue вы можете настроить объект ResourceFlavor.
Ресурсы в кластере обычно неоднородны. Если ресурсы в вашем кластере однородны, вы можете использовать пустой ResourceFlavor вместо добавления меток к пользовательским resource flavors.
Вы можете использовать пользовательский объект ResourceFlavor для представления различных вариантов ресурсов, связанных с узлами кластера через метки, taints и tolerations. Затем вы можете связывать рабочие нагрузки с определёнными типами узлов для обеспечения тонкого управления ресурсами.
2.1. Предварительные требования
- Alauda Container Platform Web CLI имеет связь с вашим кластером.
- У вас есть права администратора кластера или роль
kueue-batch-admin-role.
2.2. Процедура
-
Создайте объект ResourceFlavor в виде YAML-файла:
Пример пустого объекта ResourceFlavor
Пример пользовательского объекта ResourceFlavor для Nvidia Tesla T4 GPU
Пример пользовательского объекта ResourceFlavor для Nvidia A30 GPU
-
Примените объект ResourceFlavor, выполнив следующую команду:
3. Настройка local queue
Local queue — это объект с областью действия в пространстве имён, представленный объектом LocalQueue, который группирует тесно связанные рабочие нагрузки, принадлежащие одному пространству имён.
В качестве администратора вы можете настроить объект LocalQueue, чтобы он ссылался на cluster queue. Это выделяет ресурсы из cluster queue для рабочих нагрузок в пространстве имён, указанном в объекте LocalQueue.
3.1. Предварительные требования
- Alauda Container Platform Web CLI имеет связь с вашим кластером.
- У вас есть права администратора кластера или роль
kueue-batch-admin-role. - Вы создали объект
ClusterQueue.
3.2. Процедура
-
Создайте объект LocalQueue в виде YAML-файла:
Пример базового объекта LocalQueue
-
Примените объект LocalQueue, выполнив следующую команду:
4. Настройка локальной очереди по умолчанию
В качестве администратора кластера вы можете улучшить применение квот в вашем кластере, управляя всеми заданиями в выбранных пространствах имён без необходимости явно маркировать каждое задание. Это можно сделать, создав локальную очередь по умолчанию.
Локальная очередь по умолчанию служит local queue для вновь созданных заданий, у которых отсутствует метка kueue.x-k8s.io/queue-name. После создания локальной очереди по умолчанию любые новые задания, созданные в пространстве имён без метки kueue.x-k8s.io/queue-name, автоматически получают метку kueue.x-k8s.io/queue-name: default.
4.1. Предварительные требования
- Alauda Container Platform Web CLI имеет связь с вашим кластером.
- У вас есть права администратора кластера или роль
kueue-batch-admin-role. - Вы создали объект ClusterQueue.
4.2. Процедура
-
Создайте объект LocalQueue с именем default в виде YAML-файла:
Пример объекта LocalQueue по умолчанию
-
Примените объект
LocalQueue, выполнив следующую команду:
4.3. Проверка
- Создайте задание в том же пространстве имён, что и локальная очередь по умолчанию.
- Убедитесь, что задание обновилось с меткой
kueue.x-k8s.io/queue-name: default.