Тема
GPU в подчиненном кластере
Общая информация
Внимание!
Использование GPU возможно только в подчиненных кластерах Список поддерживаемых видеокарт
Заметка
Для создания подчиненного кластера воспользуйтесь инструкцией:
Создание подчиненного кластера
Для работы с графическими устройствами потребуется создать в подчиненном кластере WorkerPool с ролью bootsman-gpu.
Мы рекомендуем создавать WorkerPool с gpu минимум вторым, чтобы необходимые для функционирования платформы сервисы не забирали вычислительные ресурсы узлов с gpu.
Создание WorkerPool для GPU
Создание с помощью установщика Bootsman
Для использования GPU создайте дополнительный WorkerPool в подчиненном кластере
Создание с помощью yaml-манифестов
Воспользуйтесь Стандартным Yaml для подчиненного кластера.
Добавьте в yaml вашего WorkerPool дополнительные опции:
yaml
spec:
infrastructure:
bareMetalProviderConfig:
resources:
requests:
gpu: {++GPU_REQUEST++} (1)
...
roles:
- name: bootsman-gpu- Точное количество графических карт доступных на узле
Внимание
Если количество GPU_REQUEST не соответствует указанному, то хост не попадёт в WorkerPool.
Чтобы узнать, на каких baremetal хостах есть GPU карты и в каком количестве, можно выполнить команду:
kubectl get byohostsNAME OS NAME OS ID OS VERSION ID OS VARIANT ID OS PRETTY NAME AGENT VERSION ARCH CAPACITY
master-baremetal-1-yourbyoh linux astra 1.8_x86-64 se Astra Linux v99.9.9-dev-62057e70 amd64 {"cpu":"4","gpu":"1","memory":"8123368Ki","storage":"45833112Ki"}В столбце CAPACITY количество адаптеров отображается в поле gpu: <mark>GPU_REQUEST</mark>
Если хосты в кластере имеют разные модели GPU адаптеров, то можно указать конкретный адаптер c помощью фильтрации по меткам labels хоста byohost.
Для этого нужно сначала найти byohost c нужными GPU выполнив команду:
kubectl get byohosts -oyamlнайдём byohost, на котором нужная нам графическая карта:
yaml
metadata:
labels:
"gpu.bootsman.tech/nvidia":""
"gpu.bootsman.tech/nvidia-a100x80gb":""Допустим, нам нужен GPU адаптер a100x80gb от производителя nvidia.
Тогда в WorkerPool добавим ещё дополнительные опции и он будет выглядеть:
yaml
spec:
infrastructure:
bareMetalProviderConfig:
resources:
requests:
gpu: 1
selector:
matchLabels:
"gpu.bootsman.tech/nvidia-a100x80gb": ""
...
roles:
- name: bootsman-gpuЗаметка
Можно осуществить фильтрацию только по типу провайдера
Пример: "gpu.bootsman.tech/nvidia":""
Заметка
После успешного создания подчиненного кластера, модуль GPU будет добавлен автоматически. В редких случаях может потребоваться дополнительная настройка.
Настройка модуля
Описание Yaml
yaml
apiVersion: addon.bootsman.tech/v1alpha1
kind: Config
metadata:
name: {++CLUSTER_NAME++}-gpu-operator
namespace: {++CLUSTER_NAMESPACE++}
spec:
enabled: true (1)
values:
ccManager:
image: nvidia-k8s-cc-manager
repository: harbor.bootsman.host/bootsman-nimbus/common-artifacts
dcgmExporter:
image: nvidia-dcgm-exporter
repository: harbor.bootsman.host/bootsman-nimbus/common-artifacts
devicePlugin:
image: nvidia-k8s-device-plugin
repository: harbor.bootsman.host/bootsman-nimbus/common-artifacts
driver:
enabled: true
env: (3)
- name: CUSTOM_ASTRALINUX_REPOSITORIES (4)
value: |
deb http://download.astralinux.ru/astra/stable/1.7_x86-64/repository-main/ 1.7_x86-64 main contrib non-free
deb http://download.astralinux.ru/astra/stable/1.7_x86-64/repository-update/ 1.7_x86-64 main contrib non-free
deb http://download.astralinux.ru/astra/stable/1.7_x86-64/repository-base/ 1.7_x86-64 main contrib non-free
deb http://download.astralinux.ru/astra/stable/1.7_x86-64/repository-extended/ 1.7_x86-64 main contrib non-free
deb http://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.5/repository-update/ 1.7_x86-64 main contrib non-free
deb http://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.5/uu/1/repository-update/ 1.7_x86-64 main contrib non-free
image: nvidia-driver
manager:
image: nvidia-k8s-driver-manager
repository: harbor.bootsman.host/bootsman-nimbus/common-artifacts
repository: harbor.bootsman.host/bootsman-nimbus/common-artifacts
version: 550.90.12 (2)
gfd:
image: nvidia-k8s-device-plugin
repository: harbor.bootsman.host/bootsman-nimbus/common-artifacts
kataManager:
image: nvidia-k8s-kata-manager
repository: harbor.bootsman.host/bootsman-nimbus/common-artifacts
migManager:
image: nvidia-k8s-mig-manager
repository: harbor.bootsman.host/bootsman-nimbus/common-artifacts
node-feature-discovery:
image:
repository: >-
harbor.bootsman.host/bootsman-nimbus/common-artifacts/node-feature-discovery
nodeStatusExporter:
image: nvidia-gpu-operator-validator
repository: harbor.bootsman.host/bootsman-nimbus/common-artifacts
operator:
image: nvidia-gpu-operator
repository: harbor.bootsman.host/bootsman-nimbus/common-artifacts
sandboxDevicePlugin:
image: nvidia-kubevirt-gpu-device-plugin
repository: harbor.bootsman.host/bootsman-nimbus/common-artifacts
toolkit:
image: nvidia-container-toolkit
repository: harbor.bootsman.host/bootsman-nimbus/common-artifacts
validator:
image: nvidia-gpu-operator-validator
repository: harbor.bootsman.host/bootsman-nimbus/common-artifacts
vfioManager:
driverManager:
image: nvidia-k8s-driver-manager
repository: harbor.bootsman.host/bootsman-nimbus/common-artifacts
image: nvidia-cuda
repository: harbor.bootsman.host/bootsman-nimbus/common-artifacts
vgpuDeviceManager:
image: nvidia-vgpu-device-manager
repository: harbor.bootsman.host/bootsman-nimbus/common-artifacts
vgpuManager:
driverManager:
image: nvidia-k8s-driver-manager
repository: harbor.bootsman.host/bootsman-nimbus/common-artifacts- True - включено.
False - выключено - Версия драйвера
- Дополнительные параметры окружения для драйвера
- Дополнительные репозитории Astra.
Вариант для Astra 1.8:
deb https://download.astralinux.ru/astra/frozen/1.8_x86-64/1.8.2/main-repository 1.8_x86-64 main contrib non-free
deb https://download.astralinux.ru/astra/frozen/1.8_x86-64/1.8.2/extended-repository/ 1.8_x86-64 main contrib non-free non-free-firmwareНе конфликтует при использовании другой ОС
Настройка в UI

