KAI Scheduler#
KAI Scheduler - надежный, эффективный и масштабируемый планировщик Kubernetes, оптимизированный для распределения ресурсов GPU в задачах искусственного интеллекта и машинного обучения. Разработан для управления масштабируемыми кластерами GPU, включающими тысячи узлов и обрабатывающими задачи с высоким пропускным каналом, подходит для обширных и требовательных сред. KAI Scheduler позволяет администраторам Kubernetes-кластеров динамически распределять ресурсы GPU между задачами.
KAI Scheduler поддерживает полный спектр рабочих нагрузок ИИ от легких интерактивных задач с минимальными требованиями к ресурсам до масштабных задач обучения и инференса в рамках одного кластера. Обеспечивает оптимальное распределение ресурсов, сохраняя сбалансированность между различными потребителями. Совместим с другими планировщиками, установленными в кластере.
Основные функции:
Обеспечивает одновременное планирование всех pod в группе или ни один из них не получает ресурсы до появления достаточных ресурсов в кластере.
Оптимизирует использование узлов за счет минимизации фрагментации (упаковка) или увеличения устойчивости и балансировки нагрузки (распределенное планирование).
Эффективное выделение приоритетов задачам в очередях.
Управление задачами с использованием иерархических структур очередей для гибкого организационного контроля.
Настройка квот, весов превышения квот, лимитов и приоритетов для каждой очереди.
Обеспечение сбалансированного распределения ресурсов с использованием DRF (Dominant Resource Fairness) и возврата ресурсов между очередями.
Перераспределение выполняющихся задач для сокращения фрагментации и повышения эффективности использования ресурсов кластера.
Динамическое масштабирование задач в пределах определенного минимального и максимального количества pod.
Поддержка специфических для поставщика ресурсов через
ResourceClaims(например, GPU от NVIDIA или AMD).Возможность эффективного разделения одного или нескольких GPU между несколькими задачами, что максимизирует использование ресурсов.
Полная совместимость с динамическими облачными инфраструктурами (включая автомасштабировщики, такие как Karpenter) и статичными локальными развертываниями.
Установка с помощью Helm#
Чтобы установить KAI Scheduler с помощью Helm:
Добавьте репозиторий KAI Scheduler:
helm repo add kai-scheduler <repoexample>/kai-scheduler/Где
<repoexample>в зависимости от размещения:ссылка на удаленный репозиторий;
путь к локальному репозиторию.
Для развертывания выполните:
helm install kai-scheduler kai-scheduler/kai-scheduler -n kai-schedulerПример конфигурации:
apiVersion: apps/v1 kind: Deployment metadata: name: kai-scheduler spec: replicas: 1 selector: matchLabels: app: kai-scheduler template: metadata: labels: app: kai-scheduler spec: containers: - name: kai-scheduler image: <image> args: - "--kube-api-server=https://kubernetes.default.svc" - "--kube-api-secure=true" - "--kube-config=/etc/kubernetes/admin.conf" volumeMounts: - name: kube-config mountPath: /etc/kubernetes/admin.conf readOnly: true volumes: - name: kube-config hostPath: path: /etc/kubernetes/admin.conf strategy: type: RecreateУбедитесь, что pod
kai-schedulerв пространстве именkai-schedulerнаходятся в состоянииRunning:kubectl get pods -n kai-scheduler