مهندسان DevOps و توسعهدهندگان با kind آشنا هستند، یک محیط توسعه کوبرنتیز که بر پایه داکر ساخته شده است. در
این آموزش شما را در نصب
محیط من شامل یک ماشین میزبان (host machine) مجهز به یک پردازنده گرافیکی Nvidia H100 است. هدف ما استقرار یک پاد (pod) در خوشه
پیشنیازها
- میزبان GPU مبتنی بر اوبونتو 22.04
- زبان برنامهنویسی Go
- موتور داکر (Docker Engine)
- ابزار Kind
- ابزار Kubectl
- ابزار Helm
- درایور انویدیا (Nvidia driver)
- جعبهابزار کانتینر انویدیا (Nvidia Container Toolkit)
لطفاً اطمینان حاصل کنید که داکر به درستی پیکربندی شده و Nvidia runtime به عنوان پیشفرض تنظیم شده باشد. در این صورت میتوانید از داخل یک کانتینر داکر به GPU دسترسی پیدا کنید.
کامپایل و نصب باینری Nvkind
مخزن GitHub مربوط به
git clone https://github.com/NVIDIA/nvkind.git
cd nvkind
make
sudo cp ./nvkind /usr/local/bin/باینری
تعریف یک قالب و ایجاد خوشه
Nvkind یک فایل پیکربندی را میپذیرد که کنترل دقیقی بر نحوه در اختیار قرار دادن GPUها به گرههای کارگر (worker nodes) میدهد. از آنجایی که ما فقط یک GPU داریم، آن را در اختیار گره کارگر قرار خواهیم داد.
یک فایل YAML به نام
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
extraMounts:
- hostPath: /dev/null
containerPath: /var/run/nvidia-container-devices/allدر نهایت، بر اساس قالب بالا یک خوشه ایجاد خواهیم کرد.
nvkind cluster create --config-template=nvkind-cluster.yamlاکنون میتوانید با استفاده از ابزار خط فرمان
نصب اپراتور GPU انویدیا
با آماده شدن خوشه، اپراتور GPU را برای دسترسی به شتابدهنده هوش مصنوعی زیرین نصب خواهیم کرد.
helm repo add nvidia https://helm.ngc.nvidia.com/nvidia
helm repo update
helm install --wait --generate-name \
-n gpu-operator --create-namespace \
nvidia/gpu-operator --set driver.enabled=falseاطمینان حاصل کنید که تمام پادها در فضای نام (namespace)
اجرای یک بار کاری برای تست دسترسی به GPU
بیایید یک پاد آزمایشی برای تأیید دسترسی به GPU ایجاد کنیم.
kubectl apply -f - <<EOF
apiVersion: v1
kind: Pod
metadata:
name: cuda-vectoradd
spec:
restartPolicy: OnFailure
containers:
- name: cuda-vectoradd
image: "nvcr.io/nvidia/k8s/cuda-sample:vectoradd-cuda11.7.1-ubuntu20.04"
resources:
limits:
nvidia.com/gpu: 1
EOFپس از اجرای پاد، لاگهای آن را بررسی کنید تا مطمئن شوید که با موفقیت اجرا شده و به GPU دسترسی داشته است.
ما با موفقیت خوشه