Learn how Kubernetes automates the deployment and scaling of AI models. Explore orchestrating [Ultralytics YOLO26](https://docs.ultralytics.com/models/yolo26/) for production workflows and MLOps.
Kubernetes, genellikle K8s olarak anılır ve konteyner tabanlı 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 Google şu anda Cloud Native Computing Foundation (CNCF) tarafından sürdürülen Kubernetes, bulutta yazılımları koordine etmek için standart haline gelmiştir. Yapay Zeka (AI) ve Makine Öğrenimi (ML) bağlamında, mühendislik ekiplerinin dağıtılmış eğitimden yüksek kullanılabilirliğe sahip üretim çıkarımına kadar karmaşık iş akışlarını yönetmelerini sağlayan kritik altyapı katmanı olarak hizmet vermektedir. Altta yatan donanımı soyutlayarak, Kubernetes uygulamaların şirket içinde veya genel bulut sağlayıcıları aracılığıyla barındırılıp barındırılmadıklarına bakılmaksızın güvenilir ve verimli bir şekilde çalışmasını sağlar.
Kubernetes, temel olarak düğümler adı verilen bir dizi iş makinesinden oluşan bir küme mimarisi üzerinde çalışır. Bu düğümler konteynerleştirme iş yüklerini çalıştırırken, 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 konteyneri kapsayan "Pod"dur. Bu soyutlama, geliştiricilerin grafik işlem birimleri (GPU) için belirli CUDA gibi bağımlılıkları tutarlı bir ortam da paketlemelerine olanak tanır. Amazon Elastic Kubernetes Service (EKS), Azure Kubernetes Service (AKS) ve Google Engine (GKE) gibi büyük bulut hizmetleri, bu mimarinin yönetilen sürümlerini sunarak veri bilimi ekiplerinin bakım yükünü hafifletir.
Kubernetes'in Makine Öğrenimi Operasyonları (MLOps) alanındaki temel değeri, dinamik iş yüklerini yönetme yeteneğinde yatmaktadır. AI modelleri genellikle eğitim sırasında büyük hesaplama gücü ve dağıtım sırasında düşük çıkarım gecikmesi gerektirir.
Kubernetes, çeşitli sektörlerdeki birçok büyük ölçekli yapay zeka backbone kemiğidir:
Sıkça kafa karışıklığına neden olan bir konu, Kubernetes ve Docker arasındaki ilişkidir. Bunlar rakip değil, birbirini tamamlayan teknolojilerdir. Docker, tek tek konteynerler oluşturmak ve çalıştırmak (uygulamayı paketlemek) için kullanılan bir araçtır. Kubernetes ise birden fazla makine üzerinde bu konteyner filosunu yönetmek için kullanılan bir araçtır. Docker'ı, model ağırlıklarınızı ve kodunuzu bir görüntüye dönüştürmek için kullanırsınız, ardından Kubernetes'i, bu görüntünün üretimde nerede, ne zaman ve kaç kopya çalıştırılacağını belirlemek için kullanırsınız.
Kubernetes'te bir modeli dağıtmak için, geliştiriciler genellikle konteynerin giriş noktası olarak işlev gören bir Python ile başlarlar. Aşağıdaki kod, Ultralytics modelini kullanan basit bir çıkarım görevini göstermektedir. Bu komut dosyası 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.")
Kubernetes ekosistemi, veri bilimi için özel olarak tasarlanmış çok çeşitli araçlar içerir. Kubeflow, Kubernetes üzerinde ML iş akışlarının dağıtımını basit, taşınabilir ve ölçeklenebilir hale getirmek için tasarlanmış popüler bir araç setidir. Kubernetes üzerinde veri bilimi uygulamaları için Mühendisler, küme sağlığını ve uygulama metriklerini izlemek için genellikle Prometheus'a güvenirler. Bu ortamlara model eğitimi ve dağıtımının karmaşıklığını daha da basitleştirmek için Ultralytics , veri kümesi yönetimini ve model eğitimini otomatikleştiren ve kullanıcıların bulut bilişim kümelerine hazır modelleri dışa aktarmalarına olanak tanıyan birleşik bir arayüz sunar. Ayrıca, Helm gibi paket yöneticileri, yeniden kullanılabilir grafikler aracılığıyla karmaşık Kubernetes uygulamalarının yönetilmesine yardımcı olur.
