Kubernetes GPU Cluster: Mimari, Kurulum ve En İyi Uygulamalar
NVIDIA GPU Operator ve Volcano scheduler ile Kubernetes GPU Cluster mimarisi, kurulum adımları, yaygın sorunlar ve en iyi uygulamalar.
Yapay zeka ve yüksek başarımlı hesaplama (HPC) iş yükleri büyüdükçe GPU kaynaklarını verimli, güvenli ve ölçeklenebilir biçimde yönetmek kritik bir gereksinim haline gelir. Kubernetes, başlangıçta CPU tabanlı mikro servisler için tasarlanmış olsa da bugün GPU hızlandırmalı iş yüklerinin orkestre edilmesinde fiili standart konumuna gelmiştir. Bu rehberde Kubernetes GPU Cluster’ın temel mimarisini, bileşenlerini, kurulum sürecini ve yaygın sorunlara karşı en iyi uygulamaları ele alıyoruz.
Mimari: GPU’lar Kubernetes’te Nasıl Temsil Edilir?
Kubernetes GPU Cluster, GPU donanımlı sunucuların bir control plane altında yönetilen çalışan düğümler (worker node) olarak görev yaptığı mimaridir. Her GPU, Kubernetes tarafından nvidia.com/gpu adında bir “extended resource” olarak tanımlanır. İş yükleri, Pod tanımlarında bu kaynakları talep eder; scheduler ise talebi karşılayabilen uygun düğüme Pod’u yerleştirir.
Geleneksel HPC ortamlarındaki SLURM tabanlı yaklaşımın aksine Kubernetes şu avantajları sunar:
- Konteyner izolasyonu: Her iş yükü bağımsız ortamda çalışır; CUDA sürüm çakışmaları ortadan kalkar.
- Bildirimsel yapılandırma: Altyapı YAML manifestleriyle kod olarak yönetilir (Infrastructure as Code).
- Otomatik kurtarma: Başarısız Pod’lar otomatik olarak yeniden planlanır.
- Ekosistem entegrasyonu: Helm, GitOps ve CI/CD pipeline’larıyla doğal uyum sağlanır.
Temel Bileşenler
NVIDIA GPU Operator
GPU Operator, her worker düğümünde gerekli yazılım yığınını otomatik olarak yöneten bir Kubernetes operatörüdür. Yönettiği başlıca bileşenler şunlardır: NVIDIA Driver, CUDA Toolkit, Container Toolkit (Docker/containerd entegrasyonu), Device Plugin, DCGM Exporter ve MIG Manager. A100 veya H100 gibi kartlarda Multi-Instance GPU (MIG) bölümleme desteği sayesinde tek bir fiziksel GPU birden fazla iş yüküne güvenle tahsis edilebilir.
Volcano Scheduler
Standart Kubernetes scheduler, Batch ve HPC iş yüklerinin gerektirdiği gang scheduling, preemption ve kuyruk yönetimi özelliklerini barındırmaz. CNCF projesi olan Volcano bu boşluğu doldurur:
- Gang scheduling: Dağıtık eğitim işlerinin (örn. PyTorch DDP) tüm Pod’ları aynı anda başlatılır; kısmi kaynak kullanımından kaynaklanan kilitlenme (deadlock) önlenir.
- Preemption ve öncelik: Yüksek öncelikli işler, kaynak yetersizliğinde düşük öncelikli işleri askıya alabilir.
- Queue yönetimi: Ekip veya proje bazında kaynak kotaları tanımlanır.
- Backfill: Boş kapasiteyi küçük işlerle dolduran akıllı planlama algoritması.
Çok Kiracılı Mimari
Kurumsal ortamlarda namespace ve RBAC ile oluşturulan temel izolasyon, Volcano Queue ve ResourceQuota nesneleriyle güçlendirilir. Bu sayede farklı ekipler veya departmanlar aynı GPU cluster’ı paylaşırken birbirlerinin kotalarına müdahale edemez.
Kurulum Süreci
Başarılı bir Kubernetes GPU Cluster kurulumu dört aşamada tamamlanır:
- İhtiyaç analizi ve tasarım: GPU model ve sayısı, küme topolojisi (single-zone/multi-zone), ağ mimarisi (InfiniBand veya RoCE) ve kiracı yapısının belirlenmesi.
- Donanım kurulumu ve ön hazırlık: Sunucuların fiziksel rack montajı, BIOS optimizasyonu (IOMMU, NUMA ayarları), işletim sistemi kurulumu (Ubuntu 22.04 veya RHEL 9) ve ağ yapılandırması.
- Kubernetes ve bileşen kurulumu: Küme kurulumu (kubeadm veya RKE2), GPU Operator, Volcano, izleme yığını (Prometheus, Grafana, Alertmanager) ve depolama entegrasyonu (Rook-Ceph veya BeeGFS CSI).
- Doğrulama ve eğitim: Gerçek iş yükleriyle GPU performans testleri (NCCL all-reduce benchmark), ekip eğitimi ve teknik dokümantasyon teslimi.
Ağ Altyapısı: InfiniBand ve RoCE
Dağıtık derin öğrenme iş yüklerinde düğümler arası iletişim, eğitim hızını doğrudan etkiler. NVIDIA Mellanox InfiniBand, RDMA destekli 100–400 Gb/s bant genişliğiyle kolektif operasyonlar (AllReduce, AllGather) için en iyi seçenektir. Mevcut Ethernet altyapısını korumak isteyen kurumlar için RoCE (RDMA over Converged Ethernet) uygun bir alternatiftir. Her iki senaryoda Multus CNI kullanılarak Pod’lara hem standart Kubernetes ağ arayüzü hem de yüksek hızlı RDMA arayüzü aynı anda atanabilir.
Yaygın Sorunlar ve Çözümleri
GPU Operator bileşenleri başlamıyor: kubectl describe pod çıktısında sürücü sürümü uyuşmazlığı görülüyorsa ClusterPolicy nesnesindeki driver.version alanını çalışan çekirdeğe uygun değere güncelleyin.
Gang scheduling deadlock: minAvailable değeri mevcut boş GPU sayısından büyükse iş sonsuza kadar bekler. Küme kapasitesini izleyen bir otomasyon (cluster autoscaler veya manual node ekleme) bu sorunu önler.
Yüksek GPU sıcaklığı uyarıları: Alertmanager kuralında eşik genellikle 85°C olarak tanımlanır. Veri merkezi soğutma koşulları yetersizse bu değeri geçici olarak yükseltmek yerine fiziksel soğutma iyileştirmesi tercih edilmelidir.
Namespace izolasyonu ihlali: ResourceQuota tanımlı olsa bile LimitRange nesnesi eksikse Pod’lar varsayılan olarak sınırsız bellek talep edebilir. Her namespace’e hem ResourceQuota hem de LimitRange eklenmelidir.
En İyi Uygulamalar
- Node label ve taint kullanın: GPU düğümlerini
gpu=true:NoScheduletaint ile işaretleyin; yalnızca GPU talep eden Pod’lar bu düğümlere yerleşsin. - DCGM Exporter dashboard’larını özelleştirin: Ekip bazında GPU tüketimini gösteren Grafana panel’leri, kaynak planlaması için kritik veri sağlar.
- MIG profillerini iş yüküne göre seçin: Küçük çıkarım işleri için
1g.10gb, büyük eğitim işleri için7g.80gbprofili A100’de verimli bölümleme sağlar. - Volcano queue ağırlıklarını düzenli gözden geçirin: Ekip öncelikleri değiştikçe
weightparametrelerini güncellemek kaynak adaletini korur. - etcd yedeklemesini otomatikleştirin: Kubernetes control plane’in kalbi olan etcd veritabanını günlük olarak yedekleyin; felaket kurtarma senaryolarında küme dakikalar içinde ayağa kalkabilsin.
Sonuç
Kubernetes GPU Cluster, AI/ML ve HPC iş yüklerini ölçeklenebilir, izole ve yönetilebilir bir ortamda çalıştırmanın en olgun yoludur. NVIDIA GPU Operator ve Volcano scheduler kombinasyonu, kurumsal ortamlarda çok kiracılı GPU paylaşımını güvenle mümkün kılar.
Kubernetes GPU Cluster kurulumu, yapılandırması veya optimizasyonu hakkında daha fazla bilgi almak için Kubernetes GPU Cluster çözüm sayfamızı inceleyebilir ya da doğrudan iletişim sayfamız üzerinden Mevasis HPC mühendislik ekibiyle görüşebilirsiniz.