Kubernetes
Kubernetes'in yapay zekâ modellerinin dağıtımını ve ölçeklendirilmesini nasıl otomatikleştirdiğini keşfet. Yüksek performanslı bilgisayarlı görü için Ultralytics YOLO26'yı K8s üzerinde düzenlemeyi öğren.
Genellikle K8s olarak anılan Kubernetes, kapsayıcılaştırılmış uygulamaların dağıtımını, ölçeklendirilmesini ve yönetimini otomatikleştirmek için tasarlanmış açık kaynaklı bir platformdur. Başlangıçta Google tarafından geliştirilen ve günümüzde Cloud Native Computing Foundation (CNCF) tarafından sürdürülen Kubernetes, buluttaki yazılımları orkestre etme standardı hâline gelmiştir. Yapay Zeka (AI) ve Makine Öğrenimi (ML) bağlamında Kubernetes, mühendislik ekiplerinin [dağıtık eğitimden](https://ultralytics-translation-3.invalid yüksek kullanılabilirlikli üretim çıkarımına kadar karmaşık iş akışlarını yönetmesini sağlayan kritik altyapı katmanı olarak hizmet verir. Temel donanımı soyutlayan Kubernetes, uygulamaların şirket içinde veya genel bulut sağlayıcıları üzerinden barındırılmalarından bağımsız olarak güvenilir ve verimli şekilde çalışmasını sağlar.
Temel Mimari ve Kavramlar#
Kubernetes, özünde düğüm adı verilen bir dizi çalışan makineden oluşan küme mimarisi üzerinde çalışır. Bu düğümler kapsayıcılaştırma iş yüklerini çalıştırırken, bir kontrol düzlemi kümenin genel durumunu yönetir. Kubernetes'te dağıtılabilir en küçük birim, depolama ve ağ kaynaklarını paylaşan bir veya daha fazla kapsayıcıyı kapsülleyen "Pod"dur. Bu soyutlama, geliştiricilerin Grafik İşlem Birimleri (GPUs) için belirli CUDA kitaplıkları gibi bağımlılıkları tutarlı bir ortamda paketlemesine olanak tanıdığı için bilgisayarlı görü uygulamaları açısından hayati önem taşır. Amazon Elastik Kubernetes Hizmeti (EKS), Azure Kubernetes Hizmeti (AKS) ve Google Kubernetes Motoru (GKE) gibi başlıca bulut hizmetleri, bu mimarinin yönetilen sürümlerini sunarak veri bilimi ekiplerinin bakım yükünü azaltır.
Kubernetes Yapay Zeka İçin Neden Önemlidir?#
Kubernetes'in Makine Öğrenimi Operasyonları (MLOps) alanındaki temel değeri, dinamik iş yüklerini yönetebilmesinden kaynaklanır. Yapay zeka modelleri, eğitim sırasında genellikle büyük miktarda işlem gücü ve dağıtım sırasında düşük çıkarım gecikmesi gerektirir.
- Ölçeklenebilirlik: Kubernetes, kaynakları otomatik olarak ayarlamak için otomatik ölçeklendirmeyi kullanır. Trafikte ani bir artış meydana gelirse Horizontal Pod Autoscaler, manuel müdahale olmadan ölçeklenebilirliği korumak için çıkarım pod'larının sayısını artırabilir.
- Kaynak Optimizasyonu: Pahalı donanımı verimli şekilde tahsis etmek kritik öneme sahiptir. Kubernetes, kesirli GPU paylaşımını ve düğüm yakınlığını etkinleştirerek derin öğrenme modellerinin yalnızca etkin işler kaynak gerektirdiğinde kaynak tüketmesini sağlar.
- Dayanıklı Dağıtım: Model dağıtımı sırasında yüksek kullanılabilirliğin sağlanması kritik öneme sahiptir. Bir düğüm arızalanırsa Kubernetes, etkilenen pod'ları sağlıklı düğümlerde otomatik olarak yeniden başlatarak kritik API hizmetlerinde kesinti yaşanmasını önler.
Gerçek Dünya Uygulamaları#
Kubernetes, çeşitli sektörlerdeki birçok büyük ölçekli yapay zeka uygulamasının omurgasını oluşturur:
-
Akıllı Şehir Trafik Yönetimi: Bir belediye, binlerce kavşaktan gelen video akışlarını analiz etmek için Ultralytics YOLO26 modellerini dağıtabilir. Kubernetes kullanılarak sistem, artan nesne algılama yükünü karşılamak üzere yoğun saatlerde kaynakları dinamik olarak artırabilir ve maliyetleri düşürmek için geceleri azaltabilir. Bu yaklaşım, modern trafik yönetim sistemlerinin temelini oluşturur.
-
E-ticarette Kişiselleştirme: Çevrim içi perakendeciler, mikro hizmetler üzerine kurulmuş karmaşık öneri sistemlerinden yararlanır. Bir hizmet aday üretimini ele alırken başka bir hizmet yeniden sıralamayı yönetebilir. Kubernetes, bu farklı hizmetleri orkestre ederek ekiplerin sıralama sinir ağını alışveriş deneyiminin tamamını aksatmadan bağımsız olarak güncellemesine ve sürekli entegrasyonu kolaylaştırmasına olanak tanır.
Kubernetes ve Docker Arasındaki Farklar#
Yaygın bir kafa karışıklığı, Kubernetes ile Docker arasındaki ilişkidir. Bunlar rakip değil, birbirini tamamlayan teknolojilerdir. Docker, tek tek kapsayıcıları oluşturup çalıştırmaya (uygulamayı paketlemeye) yarayan bir araçken Kubernetes, bu kapsayıcı filosunu birden çok makine genelinde yönetmeye yarayan bir araçtır. Model ağırlıklarını ve kodunu bir görüntüde derlemek için Docker'ı, ardından bu görüntünün üretimde nerede, ne zaman ve kaç kopya olarak çalışacağını belirlemek için Kubernetes'i kullanırsın.
Örnek: Kapsayıcılaştırma İçin Çıkarım Betiği#
Bir modeli Kubernetes üzerinde dağıtmak için geliştiriciler genellikle kapsayıcının giriş noktası olarak görev yapan bir Python betiğiyle başlar. Aşağıdaki kod, Ultralytics YOLO26 modelini kullanan basit bir çıkarım görevini gösterir. Bu betik bir pod içinde çalışarak gelen istekleri işler.
from ultralytics import YOLO
# Load the lightweight YOLO26 model
model = YOLO("yolo26n.pt")
# Perform inference on an image source
# In a K8s pod, this would likely process API payloads
results = model("https://ultralytics.com/images/bus.jpg")
# Output the detection count for logging
print(f"Detected {len(results[0].boxes)} objects in the frame.")Araçlar ve Ekosistem#
Kubernetes ekosistemi, veri bilimine yönelik çok çeşitli araçlar içerir. Kubeflow, Kubernetes üzerindeki ML iş akışlarının dağıtımını basit, taşınabilir ve ölçeklenebilir hâle getirmeye adanmış popüler bir araç setidir. Küme durumunu ve uygulama ölçümlerini izlemek için mühendisler genellikle Prometheus'a başvurur. Modellerin bu ortamlarda eğitilmesi ve dağıtılmasının karmaşıklığını daha da azaltmak için Ultralytics Platform, veri kümesi yönetimini ve model eğitimini otomatikleştiren birleşik bir arayüz sunar ve kullanıcıların bulut bilişim kümelerine hazır modelleri dışa aktarmasına olanak tanır. Ayrıca Helm gibi paket yöneticileri, yeniden kullanılabilir chart'lar aracılığıyla karmaşık Kubernetes uygulamalarının yönetilmesine yardımcı olur.









