Установка
Содержание
Предварительные требования
- Доступ администратора к вашему ACP кластеру
- Версия Kubernetes: v1.16+
- Версия CUDA: v10.2+
- NvidiaDriver: v440+ в Hami и v450+ в DCGM-exporter
- Версия ACP: v3.18.2,v4.0,v4.1,v4.2
Процедура
Установка драйвера Nvidia на вашем GPU узле
Рекомендуется использовать Installation guide of Nvidia Official website
Установка Nvidia Container Runtime
Рекомендуется использовать Installation guide of Nvidia Container Toolkit
Добавление репозитория Nvidia yum на GPU узле
Примечание: Убедитесь, что GPU узел имеет доступ к nvidia.github.io
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.repo | sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
yum makecache -y
Когда появится сообщение "Metadata cache created.", это означает, что добавление прошло успешно.
Установка Nvidia Container Runtime
yum install nvidia-container-toolkit -y
Когда появится сообщение "Complete!", это означает, что установка прошла успешно.
Загрузка плагина кластера
INFO
Alauda Build of Hami, Alauda Build of DCGM-Exporter и Alauda Build of Hami-WebUI (опционально) плагины кластера можно получить через Customer Portal.
Пожалуйста, свяжитесь с Consumer Support для получения дополнительной информации.
Примечание: Alauda Build of DCGM-Exporter версии v4.2.3-413, развернутый в глобальном кластере, может вызывать непрерывную переустановку компонента. Версия v4.2.3-413-1 решает эту проблему, поэтому обязательно используйте именно эту версию.
Загрузка плагина кластера
Для получения дополнительной информации о загрузке плагина кластера, пожалуйста, обратитесь к Uploading Cluster Plugins
Установка Alauda Build of Hami
-
Добавьте метку "gpu=on" на вашем GPU узле для планирования Hami.
kubectl label nodes {nodeid} gpu=on
-
Перейдите на страницу Administrator -> Marketplace -> Cluster Plugin, переключитесь на целевой кластер и разверните плагин кластера Alauda Build of Hami.
Примечание: Параметры формы развертывания можно оставить по умолчанию или изменить после ознакомления с их использованием.
-
Проверьте результат. В UI должен отображаться статус "Installed", либо можно проверить статус подов:
kubectl get pods -n kube-system | grep -E "hami-scheduler|hami-device-plugin"
-
Создайте ConfigMaps, определяющие расширенные ресурсы, которые можно использовать для установки расширенных ресурсов в ACP. Выполните следующий скрипт в вашем GPU кластере:
Нажмите, чтобы развернуть код
kubectl apply -f - <<EOF
apiVersion: v1
data:
dataType: integer
defaultValue: "1"
descriptionEn: Number of GPU jobs for resource quota. When create workload, declare how many physical GPUs needs and the requests of gpu core and gpu memory are the usage of per physical GPU
descriptionZh: 资源配额代表 GPU 任务数。创建负载时代表申请的物理 gpu 个数, 申请的算力和显存都是每个物理 GPU 的使用量
group: hami-nvidia
groupI18n: '{"zh": "HAMi NVIDIA", "en": "HAMi NVIDIA"}'
key: nvidia.com/gpualloc
labelEn: gpu number
labelZh: gpu 个数
limits: optional
requests: disabled
resourceUnit: "count"
relatedResources: "nvidia.com/gpucores,nvidia.com/gpumem"
excludeResources: "nvidia.com/mps-core,nvidia.com/mps-memory,tencent.com/vcuda-core,tencent.com/vcuda-memory"
runtimeClassName: ""
kind: ConfigMap
metadata:
labels:
features.cpaas.io/enabled: "true"
features.cpaas.io/group: hami-nvidia
features.cpaas.io/type: CustomResourceLimitation
name: cf-crl-hami-nvidia-gpualloc
namespace: kube-public
---
apiVersion: v1
data:
dataType: integer
defaultValue: "20"
descriptionEn: vgpu cores, 100 cores represents the all computing power of a physical GPU
descriptionZh: vgpu 算力, 100 算力代表一个物理 GPU 的全部算力
group: hami-nvidia
groupI18n: '{"zh": "HAMi NVIDIA", "en": "HAMi NVIDIA"}'
key: nvidia.com/gpucores
prefix: limits
labelEn: vgpu cores
labelZh: vgpu 算力
limits: optional
requests: disabled
relatedResources: "nvidia.com/gpualloc,nvidia.com/gpumem"
excludeResources: "nvidia.com/mps-core,nvidia.com/mps-memory,tencent.com/vcuda-core,tencent.com/vcuda-memory"
runtimeClassName: ""
ignoreNodeCheck: "true"
kind: ConfigMap
metadata:
labels:
features.cpaas.io/enabled: "true"
features.cpaas.io/group: hami-nvidia
features.cpaas.io/type: CustomResourceLimitation
name: cf-crl-hami-nvidia-gpucores
namespace: kube-public
---
apiVersion: v1
data:
dataType: integer
defaultValue: "4000"
group: hami-nvidia
groupI18n: '{"zh": "HAMi NVIDIA", "en": "HAMi NVIDIA"}'
key: nvidia.com/gpumem
prefix: limits
labelEn: vgpu memory
labelZh: vgpu 显存
limits: optional
requests: disabled
resourceUnit: "Mi"
relatedResources: "nvidia.com/gpualloc,nvidia.com/gpucores"
excludeResources: "nvidia.com/mps-core,nvidia.com/mps-memory,tencent.com/vcuda-core,tencent.com/vcuda-memory"
runtimeClassName: ""
ignoreNodeCheck: "true"
kind: ConfigMap
metadata:
labels:
features.cpaas.io/enabled: "true"
features.cpaas.io/group: hami-nvidia
features.cpaas.io/type: CustomResourceLimitation
name: cf-crl-hami-nvidia-gpumem
namespace: kube-public
---
apiVersion: v1
kind: ConfigMap
metadata:
name: cf-crl-hami-config
namespace: kube-public
labels:
device-plugin.cpaas.io/config: "true"
data:
deviceName: "HAMi"
nodeLabelKey: "gpu"
nodeLabelValue: "on"
EOF
После этого вы сможете видеть Hami в выпадающем списке типов расширенных ресурсов на странице конфигурации ресурсов при создании приложения в бизнес-виде ACP и использовать его.
Установка Alauda Build of DCGM-Exporter
-
Перейдите на страницу Administrator -> Marketplace -> Cluster Plugin, переключитесь на целевой кластер и разверните плагин кластера Alauda Build of DCGM-Exporter:
В форме всплывающего окна задайте метки узлов:
- Ключ метки узла: gpu
- Значение метки узла: on
Если необходимо включить dcgm-exporter для pgpu, можно добавить дополнительные метки:
- Ключ метки узла: nvidia-device-enable
- Значение метки узла: pgpu
-
Проверьте результат. В UI должен отображаться статус "Installed", либо можно проверить статус подов:
kubectl get pods -n kube-system | grep dcgm-exporter
Установка Монитора
Вы можете использовать ACP MonitorDashboard или Alauda build of Hami-WebUI
Установка ACP MonitorDashboard (опционально)
Создайте ресурс ACP MonitorDashboard для мониторинга HAMi GPU в ACP dashboard.
Сохраните файл hami-vgpu-metrics-dashboard-v1.0.2.yaml в бизнес-кластер и выполните команду: kubectl apply -f hami-vgpu-metrics-dashboard-v1.0.2.yaml
Установка Alauda build of Hami-WebUI (опционально)
- Перейдите на страницу
Administrator -> Marketplace -> Cluster Plugin, переключитесь на целевой кластер и разверните плагин кластера Alauda Build of Hami-WebUI.
Заполните адрес Prometheus и аутентификацию Prometheus. Рекомендуется включить доступ NodePort. Адрес Prometheus и данные аутентификации можно получить с помощью следующих скриптов:
#!/bin/bash
addr=$(kubectl get feature monitoring -o jsonpath='{.spec.accessInfo.database.service}')
if [ -z "$addr" ]; then
addr=$(kubectl get feature monitoring -o jsonpath='{.spec.accessInfo.database.address}')
fi
echo "Prometheus Address: $addr"
secret_name=$(kubectl get feature monitoring -o jsonpath='{.spec.accessInfo.database.basicAuth.secretName}')
namespace="cpaas-system"
username=$(kubectl get secret $secret_name -n $namespace -o jsonpath='{.data.username}' | base64 -d)
password=$(kubectl get secret $secret_name -n $namespace -o jsonpath='{.data.password}' | base64 -d)
auth="Basic $(echo -n "$username:$password" | base64 -w 0)"
echo "Prometheus Auth : $auth"
- Проверьте результат. В UI должен отображаться статус "Installed", либо можно проверить статус подов:
kubectl get pods -n cpaas-system | grep "hami-webui"