Запуск примера модуля в Kubernetes с узлами графического процессора Nvidia

Я пытаюсь настроить Kubernetes с узлами / ведомыми устройствами Nvidia GPU. Я следовал руководству по адресу https://docs.nvidia.com/datacenter/kubernetes-install-guide/index.html, и мне удалось подключить узел к кластеру. Я попробовал следующий пример модуля kubeadm:

apiVersion: v1
kind: Pod
metadata:
  name: gpu-pod
spec:
  containers:
    - name: cuda-container
      image: nvidia/cuda:9.0-base
      command: ["sleep"]
      args: ["100000"]
      extendedResourceRequests: ["nvidia-gpu"]
  extendedResources:
    - name: "nvidia-gpu"
      resources:
        limits:
          nvidia.com/gpu: 1
      affinity:
        required:
          - key: "nvidia.com/gpu-memory"
            operator: "Gt"
            values: ["8000"]

Pod не выполняет планирование, и события kubectl показывают:

4s          2m           14        gpu-pod.15487ec0ea0a1882        Pod                                          Warning   FailedScheduling        default-scheduler            0/2 nodes are available: 1 Insufficient nvidia.com/gpu, 1 PodToleratesNodeTaints.

Я использую экземпляры AWS EC2. m5.large для главного узла и g2.8xlarge для ведомого узла. Описание узла также дает "nvidia.com/gpu: 4". Может ли кто-нибудь помочь мне, если мне не хватает каких-либо шагов / конфигураций?


person Aditya Abinash    schedule 07.08.2018    source источник
comment
Не могли бы вы поделиться результатами команды для ваших работников nvidia: kubectl describe nodes. А также поделитесь результатами команд: kubectl describe pods gpu-pod и kubectl logs gpu-pod. Предоставленной вами информации недостаточно для понимания происходящего.   -  person Artem Golenyaev    schedule 07.08.2018
comment
@ArtemGolenyaev Добавление ссылок на документы Google с запрошенными журналами:   -  person Aditya Abinash    schedule 08.08.2018
comment
Похоже, у вас недостаточно ресурсов для планирования модуля, попробуйте уменьшить объем необходимой nvidia.com/gpu-memory памяти или расширить ресурсы узлов графического процессора Nvidia   -  person Artem Golenyaev    schedule 09.08.2018
comment
Модуль запрашивает 8 ГБ памяти, тогда как экземпляр g2.8xlarge имеет 60 ГБ.   -  person Aditya Abinash    schedule 13.08.2018


Ответы (1)


Согласно AWS G2 документации, g2.8xlarge на серверах есть следующие ресурсы:

  • Четыре графических процессора NVIDIA GRID, каждый с 1536 ядрами CUDA и 4 ГБ видеопамяти, а также возможность кодирования четырех потоков HD-видео в реальном времени с разрешением 1080p или восьми потоков HD-видео в реальном времени с разрешением 720P.
  • 32 виртуальных ЦП.
  • 60 ГиБ памяти.
  • 240 ГБ (2 x 120) SSD-накопителя.

Глядя на комментарии, 60 ГБ - это стандартная оперативная память, и она используется для обычных расчетов. g2.8xlarge серверы имеют 4 графических процессора с 4 ГБ памяти графического процессора каждый, и эта память используется для вычислений в nvidia/cuda контейнерах.

В вашем случае требуется 8 ГБ памяти графического процессора на каждый графический процессор, но у вашего сервера только 4 ГБ. Следовательно, кластеру не хватает ресурсов для планирования POD. Итак, попробуйте уменьшить использование памяти в настройках Pod или попробуйте использовать сервер с большим объемом памяти графического процессора.

person Artem Golenyaev    schedule 13.08.2018