DIABOLIKSS
Rehberler|OpenShift GPU Workload Yönetimi: NVIDIA GPU Operator ve Time Slicing
How-To Guide · OpenShift · NVIDIA GPU Operator

OpenShift GPU Workload Yönetimi:NVIDIA GPU Operator ve Time Slicing

OpenShift 4.14+ · GPU Operator 24.xMIG · Time Slicing · A100/H100Haziran 2025

Bir GPU sunucusu sıraya almak kolaydır; GPU'yu 8 farklı iş yükü arasında adil ve verimli paylaştırmak uzmanlık ister. Bu rehber; NVIDIA GPU Operator kurulumundan MIG bölümlendirmeye, time slicing ile maliyet optimizasyonundan model eğitim kuyruklarına kadar OpenShift üzerindeki GPU iş yükü yönetimini teknik doğrulukla ele alır.

01

GPU Paylaşım Stratejileri: MIG mi, Time Slicing mi?

GPU'lar pahalı kaynaklardır. Bir model eğitim işi GPU'yu yalnızca gece birkaç saat kullanıyorsa, gün içindeki boşta kalan kapasiteyi diğer iş yüklerine açmak hem maliyeti hem de kaynak verimliliğini doğrudan etkiler. NVIDIA OpenShift üzerinde iki farklı paylaşım mekanizması sunar ve bunların farkını anlamak doğru stratejiyi belirlemenin temelidir.

ÖzellikTime SlicingMIG (Multi-Instance GPU)
Donanım yalıtımı✗ Yok✔ Bellek ve hata yalıtımı
Bellek paylaşımıTüm bellek görünür, korumasızHer örneğe sabit bellek
Desteklenen GPUTüm NVIDIA GPU'larYalnızca A30, A100, H100
Bölüm sayısıYapılandırılabilir (ör. 8)GPU modeline göre sabit profiller
Kurulum karmaşıklığıBasit (ConfigMap)Orta (profil seçimi gerekir)
İdeal kullanımGeliştirme, küçük inferansÜretim, çok kiracılı ortam
⚠️
Time slicing bellek yalıtımı sağlamaz: Time slicing ile bir pod GPU'nun tüm belleğini görebilir. Bir pod çöktüğünde veya bellek sınırını aşarsa, aynı GPU'yu paylaşan diğer pod'lar olumsuz etkilenebilir. Çok kiracılı üretim ortamlarında MIG zorunlu, test ve geliştirme ortamlarında time slicing yeterlidir.
02

Ön Koşullar ve Donanım Uyumluluğu

  • OpenShift 4.14 veya üzeri (4.16+ önerilir — GPU Operator 24.x için)
  • NVIDIA GPU node'ları: Pascal (P100) ve üzeri; MIG için A30/A100/H100
  • Lisans: GPU Operator açık kaynaktır, ek lisans gerektirmez; NVIDIA Enterprise desteği için NGC (NVIDIA GPU Cloud) hesabı gerekir
  • Node Feature Discovery (NFD) Operator: GPU Operator'dan önce kurulmalıdır
  • OperatorHub erişimi: Red Hat OperatorHub veya disconnected ortam için mirror ayarlanmış olmalı
  • Siaflex Compute Cloud: GPU node'lu OpenShift kurulumunda Siaflex'in GPU donanım profilleri kullanılabilir
🟢
T4 (Tesla)
Time Slicing
Inferans, geliştirme
🟡
A30
MIG: 4 profil tipi
Küçük MIG ortamları
🔵
A100 40/80GB
MIG: 7 profil tipi
Üretim model eğitimi
🔴
H100 80GB
MIG: 7 profil tipi
LLM eğitimi, büyük model
03

Node Feature Discovery Operator Kurulumu

NFD, cluster node'larının donanım özelliklerini (CPU, PCI cihazları, GPU varlığı) keşfederek node etiketleri oluşturur. GPU Operator bu etiketlere dayanır. NFD kurulmadan GPU Operator GPU node'larını bulamaz.

1
NFD Operator'ü OperatorHub'dan Kurun
oc apply -f - <<'EOF' apiVersion: v1 kind: Namespace metadata: name: openshift-nfd EOF # OperatorHub'dan NFD kur (GUI veya CLI) oc apply -f - <<'EOF' apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: nfd namespace: openshift-nfd spec: channel: stable name: nfd source: redhat-operators sourceNamespace: openshift-marketplace EOF
2
NodeFeatureDiscovery CR Oluşturun
oc apply -f - <<'EOF' apiVersion: nfd.openshift.io/v1 kind: NodeFeatureDiscovery metadata: name: nfd-instance namespace: openshift-nfd spec: operand: image: registry.redhat.io/openshift4/ose-node-feature-discovery-rhel9 servicePort: 12000 EOF # GPU node etiketini dogrula oc describe node GPU-NODE-ADI | grep -i nvidia
04

NVIDIA GPU Operator Kurulumu

1
GPU Operator Namespace ve OperatorGroup Oluşturun
oc apply -f - <<'EOF' apiVersion: v1 kind: Namespace metadata: name: nvidia-gpu-operator EOF oc apply -f - <<'EOF' apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: nvidia-gpu-operator-group namespace: nvidia-gpu-operator spec: targetNamespaces: - nvidia-gpu-operator EOF
2
GPU Operator'ü Yükleyin
oc apply -f - <<'EOF' apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: gpu-operator-certified namespace: nvidia-gpu-operator spec: channel: v24.9 name: gpu-operator-certified source: certified-operators sourceNamespace: openshift-marketplace EOF # Operator hazir mi? oc get csv -n nvidia-gpu-operator | grep gpu-operator
3
ClusterPolicy CR Oluşturun

ClusterPolicy, GPU Operator'ün tüm bileşenlerini (driver, device plugin, DCGM exporter) yapılandıran ana kaynaktır.

oc apply -f - <<'EOF' apiVersion: nvidia.com/v1 kind: ClusterPolicy metadata: name: gpu-cluster-policy spec: operator: defaultRuntime: crio driver: enabled: true devicePlugin: enabled: true dcgmExporter: enabled: true mig: strategy: single EOF # Tum GPU pod'larinin Running durumunu dogrula (5-10 dk) oc get pods -n nvidia-gpu-operator
💡
Kurulum doğrulama: GPU Operator tüm bileşenlerini başlattıktan sonra, bir test pod'u çalıştırarak GPU erişimini doğrulayın. Her node'da nvidia.com/gpu kaynağının görünmesi gerekir.
05

Time Slicing Yapılandırması

Time slicing, CUDA zaman dilimlendirmesi aracılığıyla tek bir GPU'yu birden fazla pod'a eş zamanlı olarak sunar. Her GPU modeli için ayrı bir yapılandırma tanımlanabilir; farklı GPU türleri aynı cluster'da farklı replica sayısıyla çalışabilir.

1
Time Slicing ConfigMap Oluşturun
oc apply -f - <<'EOF' apiVersion: v1 kind: ConfigMap metadata: name: device-plugin-config namespace: nvidia-gpu-operator data: Tesla-T4: |- version: v1 sharing: timeSlicing: resources: - name: nvidia.com/gpu replicas: 8 A100-SXM4-40GB: |- version: v1 sharing: timeSlicing: resources: - name: nvidia.com/gpu replicas: 8 EOF
2
ClusterPolicy'yi ConfigMap'e Yönlendirin
oc patch clusterpolicy gpu-cluster-policy \ -n nvidia-gpu-operator \ --type merge \ -p '{"spec":{"devicePlugin":{"config":{"name":"device-plugin-config"}}}}' # Node'larda yeni replica sayisini dogrula oc describe node GPU-NODE | grep nvidia.com/gpu # "nvidia.com/gpu: 8" gormeli (1 GPU icin 8 replica)
3
Time Slicing ile Pod Çalıştırın
oc apply -f - <<'EOF' apiVersion: v1 kind: Pod metadata: name: gpu-test-timeslicing spec: restartPolicy: Never containers: - name: gpu-container image: nvidia/cuda:12.0-base-ubi8 resources: limits: nvidia.com/gpu: "1" command: ["nvidia-smi"] EOF oc logs gpu-test-timeslicing
⚠️
Replica sayısı seçimi: Her replica'nın tam GPU belleğine görünür erişimi vardır ama yalnızca zaman dilimleri alır. Replica sayısını GPU'nun gerçek belleğine ve iş yüklerinizin bellek gereksinimlerine göre belirleyin. Bir T4 (16 GB) için 8 replica tanımlandığında her pod teorik 2 GB paylaşım alanı alır. Ancak bellek yalıtımı olmadığından bu bir garanti değildir.
06

MIG Bölümlendirme (A100 ve H100)

MIG, A100 ve H100 GPU'larında donanım düzeyinde yalıtım sağlar. Her MIG örneği (instance), kendi bellek dilimi ve hesaplama birimlerine sahiptir; bir pod'un çökmesi diğerini etkilemez. Üretim ortamları için zorunlu kabul edilmesi gereken bir güvenlik katmanıdır.

A100 80GB MIG Profilleri

ProfilGPU DilimleriBellekMaks. Örnek
mig-1g.10gb1/710 GB7
mig-2g.20gb2/720 GB3
mig-3g.40gb3/740 GB2
mig-7g.80gb7/780 GB1 (tam GPU)
1
MIG Stratejisini Seçin

GPU Operator iki MIG stratejisi destekler: single (tüm GPU'lar aynı profil) veya mixed (her node farklı profil). Çok kiracılı ortamlar için mixed daha esnektir.

oc patch clusterpolicy gpu-cluster-policy \ -n nvidia-gpu-operator \ --type merge \ -p '{"spec":{"mig":{"strategy":"mixed"}}}'
2
Node'u MIG Profiline Göre Etiketleyin
# A100 node'unu karma profille yapilandir oc label node GPU-NODE-A100 \ nvidia.com/mig.config=all-1g.10gb --overwrite # Yapilandirmayi dogrula oc describe node GPU-NODE-A100 | grep mig
3
MIG Kaynağına Erişen Pod Çalıştırın
oc apply -f - <<'EOF' apiVersion: v1 kind: Pod metadata: name: mig-test spec: restartPolicy: Never containers: - name: mig-container image: nvidia/cuda:12.0-base-ubi8 resources: limits: nvidia.com/mig-1g.10gb: "1" command: ["nvidia-smi", "-L"] EOF
07

GPU İş Yükü Zamanlama

GPU kaynakları kısıtlı olduğunda iş yüklerinin doğru sıralanması kritiktir. OpenShift'in yerleşik zamanlayıcısına ek olarak, GPU iş yükleri için özel önceliklendirme ve kuyruklama yapılandırmaları uygulanabilir.

1
PriorityClass ile Önceliklendirme
oc apply -f - <<'EOF' apiVersion: scheduling.k8s.io/v1 kind: PriorityClass metadata: name: gpu-egitim-yuksek value: 100000 description: "Model egitim islerinin yuksek onceligi" --- apiVersion: scheduling.k8s.io/v1 kind: PriorityClass metadata: name: gpu-inferans-normal value: 50000 description: "Inferans servisleri icin normal oncelik" EOF
2
ResourceQuota ile GPU Kotası
oc apply -f - <<'EOF' apiVersion: v1 kind: ResourceQuota metadata: name: gpu-kota-datascience namespace: veri-bilimi-ekibi spec: hard: requests.nvidia.com/gpu: "4" limits.nvidia.com/gpu: "4" EOF # Namespace GPU kullanimi oc describe resourcequota gpu-kota-datascience -n veri-bilimi-ekibi
3
NodeSelector ile GPU Node Hedefleme
spec: nodeSelector: nvidia.com/gpu.present: "true" nvidia.com/gpu.product: "Tesla-T4" # belirli GPU modeli tolerations: - key: nvidia.com/gpu operator: Exists effect: NoSchedule
08

RHOAI ile MLOps Entegrasyonu

Red Hat OpenShift AI (RHOAI), GPU iş yüklerini JupyterHub notebook'larından model servis platformlarına kadar yönetir. GPU Operator, RHOAI'ın GPU kaynaklarına erişiminin ön koşuludur.

📓
JupyterHub
GPU destekli notebook
Notebook spawner'da GPU seçimi
🔄
Kubeflow Pipelines
GPU node'a pipeline adımı
resources.limits ile GPU ata
🚀
KServe
GPU destekli model servis
InferenceService GPU limiti
📊
DCGM Exporter
Prometheus metrikleri
Grafana GPU dashboard
# RHOAI JupyterHub GPU notebook profili ornegi # RHOAI Dashboard -> Notebook Profiles -> GPU secimi # Arka planda olusturulan PVC ve pod: apiVersion: v1 kind: Pod spec: containers: - name: jupyter resources: limits: nvidia.com/gpu: "1" # veya mig-1g.10gb nodeSelector: nvidia.com/gpu.present: "true"
ℹ️
Siaflex Compute Cloud'da GPU: Siaflex OpenShift ortamında GPU node'ları, OpenShift AI iş yükleri için önceden yapılandırılmış profillerde sunulabilir. Model eğitim altyapısını kendi veri merkezinizde kurmak yerine Siaflex'in GPU compute havuzunu kullanmak, donanım yatırımı yapmadan MLOps süreçlerini başlatmanızı sağlar.
09

İzleme ve Performans Doğrulama

1
DCGM Exporter Metriklerini Kontrol Edin
# DCGM Exporter pod'larinin durumunu kontrol et oc get pods -n nvidia-gpu-operator | grep dcgm # Prometheus'ta GPU kullanim metrigi # DCGM_FI_DEV_GPU_UTIL -> GPU kullanim yuzdesi # DCGM_FI_DEV_MEM_COPY_UTIL -> Bellek bant genisligi kullanimi # DCGM_FI_DEV_FB_USED -> Kullanilan GPU bellegi (MB) # DCGM_FI_DEV_POWER_USAGE -> Guc tuketimi (W)
2
GPU Erişimini Test Edin
# CUDA is yuku testi (gpu-burn) oc run gpu-burn --image=nvcr.io/nvidia/k8s/cuda-sample:vectoradd-cuda11.7.1-ubi8 \ --overrides='{"spec":{"restartPolicy":"Never","containers":[{"name":"gpu-burn", "image":"nvcr.io/nvidia/k8s/cuda-sample:vectoradd-cuda11.7.1-ubi8", "resources":{"limits":{"nvidia.com/gpu":"1"}}}]}}' # Time slicing dogrulama (8 replica icin 8 pod baslatilabilir mi?) for i in $(seq 1 8); do oc run gpu-pod-$i --image=nvidia/cuda:12.0-base-ubi8 \ --limits="nvidia.com/gpu=1" -- sleep 60 done oc get pods | grep gpu-pod
10

Sorun Giderme ve CLI Referansı

BelirtiOlası NedenÇözüm
Pod Pending, 0/N GPUGPU Operator pod'ları hazır değil veya NFD etiketleri eksikGPU Operator pod durumunu ve node etiketlerini kontrol edin
nvidia-smi: command not foundDriver pod çalışmıyornvidia-gpu-operator namespace'indeki driver pod loglarını inceleyin
Time slicing replica görünmüyorConfigMap ClusterPolicy'ye bağlanmamışClusterPolicy patch'ini doğrulayın, device-plugin pod'unu yeniden başlatın
MIG profil node'da yokNode etiketi yanlış veya GPU modeli MIG desteklemiyornvidia.com/mig.config etiketini doğrulayın, GPU modelini kontrol edin
# GPU node durumu oc describe node GPU-NODE | grep -A10 "Capacity" oc get node GPU-NODE -o json | jq '.status.capacity' # GPU Operator pod durumlari oc get pods -n nvidia-gpu-operator -o wide # ClusterPolicy durumu oc get clusterpolicy gpu-cluster-policy -o yaml | grep -A5 "state:" # MIG yapilandirmasi oc exec -n nvidia-gpu-operator nvidia-driver-daemonset-XXXXX -- nvidia-smi -L
Siaflex

OpenShift GPU Compute

Siaflex Compute Cloud, OpenShift AI iş yükleri için GPU node'larını yönetilen altyapıda sunar. GPU Operator önceden yapılandırılmış, MIG profilleri hazır, model eğitim altyapısını dakikalar içinde kullanıma alabilirsiniz.

ESH Bilişim

Red Hat CCSP ve OpenShift AI Danışmanlığı

ESH Bilişim, Red Hat CCSP yetkinliğiyle OpenShift kurulumu, GPU Operator yapılandırması ve RHOAI MLOps pipeline tasarımı konularında saha desteği sağlar.

  • NFD Operator kuruldu ve GPU node etiketleri görünüyor
  • GPU Operator tüm pod'ları Running durumunda
  • ClusterPolicy oluşturuldu, driver ve device plugin aktif
  • Time slicing ConfigMap yapılandırıldı ve node'da replica görünüyor
  • Test pod'u GPU'ya erişti ve nvidia-smi çalıştı
  • MIG profili yapılandırıldı (A100/H100 için)
  • ResourceQuota ile GPU kotası tanımlandı
  • DCGM Exporter metrikleri Prometheus'ta görünüyor

Kaynaklar

  1. NVIDIA, "Time-slicing NVIDIA GPUs in OpenShift" — docs.nvidia.com/datacenter/cloud-native/openshift/latest
  2. NVIDIA, "GPU Operator on OpenShift" resmi dokümantasyon — docs.nvidia.com/datacenter/cloud-native/openshift
  3. Red Hat, "NVIDIA GPU on OpenShift — AI on OpenShift" — ai-on-openshift.io/odh-rhoai/nvidia-gpus
  4. NVIDIA, "MIG User Guide" (A100/H100 profilleri) — docs.nvidia.com/datacenter/tesla/mig-user-guide
OpenShiftNVIDIA GPUTime Slicing MIGRHOAISiaflex
↑ Başa Dön