Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Практические руководства
    • Все руководства
    • Настройка подключения к Managed Service for PostgreSQL из контейнера Serverless Containers
    • Создать ВМ с Container Optimized Image
    • Создать ВМ с Container Optimized Image и дополнительным томом для Docker-контейнера
    • Создать группу ВМ с Container Optimized Image и несколькими Docker-контейнерами
    • Создать группу ВМ с Container Optimized Image
    • Создать ВМ с Container Optimized Image и несколькими Docker-контейнерами
    • Изменить ВМ с Container Optimized Image
    • Настройка вывода информации из Docker-контейнера в серийный порт
      • Создание нового Kubernetes-проекта
      • Создание кластера Kubernetes без доступа в интернет
      • Запуск рабочих нагрузок с GPU
      • Использование групп узлов c GPU без предустановленных драйверов
      • Установка Time-Slicing GPUs
      • Миграция ресурсов в другую зону доступности
      • Шифрование секретов

В этой статье:

  • Необходимые платные ресурсы
  • Перед началом работы
  • Настройте Time-Slicing GPUs
  • Проверьте работу Time-Slicing GPUs
  • Удалите созданные ресурсы
  1. Контейнерная инфраструктура
  2. Managed Service for Kubernetes
  3. Установка Time-Slicing GPUs

Установка Time-Slicing GPUs в Yandex Managed Service for Kubernetes

Статья создана
Yandex Cloud
Улучшена
mmerihsesh
Обновлена 21 апреля 2025 г.
  • Необходимые платные ресурсы
  • Перед началом работы
  • Настройте Time-Slicing GPUs
  • Проверьте работу Time-Slicing GPUs
  • Удалите созданные ресурсы

Плагин Time-Slicing GPUs в Kubernetes используется для чередования рабочих нагрузок, которые выполняются на одном GPU с избыточной подпиской.

Чтобы установить плагин Time-Slicing GPUs в Managed Service for Kubernetes:

  1. Настройте Time-Slicing GPUs.
  2. Проверьте работу Time-Slicing GPUs.

Если созданные ресурсы вам больше не нужны, удалите их.

Необходимые платные ресурсыНеобходимые платные ресурсы

В стоимость поддержки описываемого решения входят:

  • Плата за кластер Managed Service for Kubernetes: использование мастера и исходящий трафик (см. тарифы Managed Service for Kubernetes).
  • Плата за узлы кластера (ВМ): использование вычислительных ресурсов, операционной системы и хранилища (см. тарифы Compute Cloud).
  • Плата за публичный IP-адрес, если он назначен узлам кластера (см. тарифы Virtual Private Cloud).

Перед началом работыПеред началом работы

  1. Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

  2. По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

  3. Создайте группы безопасности для кластера Managed Service for Kubernetes и входящих в него групп узлов.

    Важно

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

  4. Создайте кластер Managed Service for Kubernetes. При создании укажите группы безопасности, подготовленные ранее.

  5. Создайте группу узлов Managed Service for Kubernetes c GPU NVIDIA® Tesla® T4 и с группами безопасности, подготовленными ранее.

  6. Установите kubectl и настройте его на работу с созданным кластером.

Настройте Time-Slicing GPUsНастройте Time-Slicing GPUs

  1. Создайте конфигурацию time-slicing:

    1. Подготовьте файл time-slicing-config.yaml со следующим содержимым:

      ---
      kind: Namespace
      apiVersion: v1
      metadata:
        name: gpu-operator
      
      ---
      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: time-slicing-config
        namespace: gpu-operator
      data:
        a100-80gb: |-
          version: v1
          sharing:
            timeSlicing:
              resources:
              - name: nvidia.com/gpu
                replicas: 5
        tesla-t4: |-
          version: v1
          sharing:
            timeSlicing:
              resources:
              - name: nvidia.com/gpu
                replicas: 5
      
    2. Выполните команду:

      kubectl create -f time-slicing-config.yaml
      

      Результат:

      namespace/gpu-operator created
      configmap/time-slicing-config created
      
  2. Установите GPU Operator:

    helm repo add nvidia https://helm.ngc.nvidia.com/nvidia && \
    helm repo update && \
    helm install \
      --namespace gpu-operator \
      --create-namespace \
      --set devicePlugin.config.name=time-slicing-config \
      gpu-operator nvidia/gpu-operator
    
  3. Примените конфигурацию time-slicing для кластера Managed Service for Kubernetes или группы узлов:

    Кластер Managed Service for Kubernetes
    Группа узлов Managed Service for Kubernetes
    kubectl patch clusterpolicies.nvidia.com/cluster-policy \
      --namespace gpu-operator \
      --type merge \
      --patch='{"spec": {"devicePlugin": {"config": {"name": "time-slicing-config", "default": "tesla-t4"}}}}'
    
    yc managed-kubernetes node-group add-labels <идентификатор_или_имя_группы_узлов> \
      --labels nvidia.com/device-plugin.config=tesla-t4
    

    Идентификатор и имя группы узлов Managed Service for Kubernetes можно получить со списком групп узлов в каталоге.

Проверьте работу Time-Slicing GPUsПроверьте работу Time-Slicing GPUs

  1. Создайте тестовое приложение:

    1. Сохраните следующую спецификацию для создания приложения в YAML-файл с именем nvidia-plugin-test.yml.

      Deployment — объект API Kubernetes, который управляет реплицированным приложением.

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: nvidia-plugin-test
        labels:
          app: nvidia-plugin-test
      spec:
        replicas: 5
        selector:
          matchLabels:
            app: nvidia-plugin-test
        template:
          metadata:
            labels:
              app: nvidia-plugin-test
          spec:
            tolerations:
              - key: nvidia.com/gpu
                operator: Exists
                effect: NoSchedule
            containers:
              - name: dcgmproftester11
                image: nvidia/samples:dcgmproftester-2.0.10-cuda11.0-ubuntu18.04
                command: ["/bin/sh", "-c"]
                args:
                  - while true; do /usr/bin/dcgmproftester11 --no-dcgm-validation -t 1004 -d 300; sleep 30; done
                resources:
                  limits:
                    nvidia.com/gpu: 1
                securityContext:
                  capabilities:
                    add: ["SYS_ADMIN"]
      
    2. Выполните команду:

      kubectl apply -f nvidia-plugin-test.yml
      

      Результат:

      deployment.apps/nvidia-plugin-test created
      
  2. Убедитесь, что все пять подов Managed Service for Kubernetes приложения находятся в состоянии Running:

    kubectl get pods | grep nvidia-plugin-test
    
  3. Выполните команду nvidia-smi в запущенном поде Managed Service for Kubernetes nvidia-container-toolkit:

    kubectl exec <имя_пода_nvidia-container-toolkit> \
      --namespace gpu-operator -- nvidia-smi
    

    Результат:

    Defaulted container "nvidia-container-toolkit-ctr" out of: nvidia-container-toolkit-ctr, driver-validation (init)
    Thu Jan 26 09:42:51 2023
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 515.65.01    Driver Version: 515.65.01    CUDA Version: N/A      |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |                               |                      |               MIG M. |
    |===============================+======================+======================|
    |   0  Tesla T4            Off  | 00000000:8B:00.0 Off |                    0 |
    | N/A   72C    P0    70W /  70W |   1579MiB / 15360MiB |    100%      Default |
    |                               |                      |                  N/A |
    +-------------------------------+----------------------+----------------------+
    
    +-----------------------------------------------------------------------------+
    | Processes:                                                                  |
    |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
    |        ID   ID                                                   Usage      |
    |=============================================================================|
    |    0   N/A  N/A     43108      C   /usr/bin/dcgmproftester11         315MiB |
    |    0   N/A  N/A     43211      C   /usr/bin/dcgmproftester11         315MiB |
    |    0   N/A  N/A     44583      C   /usr/bin/dcgmproftester11         315MiB |
    |    0   N/A  N/A     44589      C   /usr/bin/dcgmproftester11         315MiB |
    |    0   N/A  N/A     44595      C   /usr/bin/dcgmproftester11         315MiB |
    +-----------------------------------------------------------------------------+
    

Удалите созданные ресурсыУдалите созданные ресурсы

Некоторые ресурсы платные. Удалите ресурсы, которые вы больше не будете использовать, чтобы не тратить на них средства:

  1. Удалите кластер Managed Service for Kubernetes.
  2. Если вы создавали сервисные аккаунты, удалите их.

Была ли статья полезна?

Предыдущая
Использование групп узлов c GPU без предустановленных драйверов
Следующая
Миграция ресурсов в другую зону доступности
Проект Яндекса
© 2025 ООО «Яндекс.Облако»