Azure Kubernetes Service (AKS) üzerinde çalışan karmaşık mikro hizmet mimarilerinde, yüzlerce hatta binlerce Pod’u yönetmek ve trafiği doğru hedeflere yönlendirmek için etiketleme sistemi hayati önem taşır. Kubernetes içerisinde nesneleri (Pod, Deployment vb.) belirli özelliklerine göre gruplandırmak ve seçmek için Label ve Selector mekanizmaları kullanılır.
Örneğin, backend servisinizin 5 farklı Pod üzerinde çalıştığı bir senaryoda, gelen isteklerin bu 5 Pod’a doğru şekilde dağıtılması gerekir. İşte bu noktada devreye giren etiketler (Labels), servis objelerinin hangi Pod’lara yönlendirme yapacağını bilmesini sağlar.
1. Label (Etiket) Tanımlama
Etiketler, Kubernetes objelerine eklenen anahtar-değer (key-value) çiftleridir. Bir Pod manifestosunda metadata bölümü altında tanımlanırlar.
Aşağıdaki örnekte, bir ASP.NET uygulamasını app: backend etiketiyle nasıl işaretlediğimizi görebilirsiniz:
YAML
apiVersion: v1
kind: Pod
metadata:
name: backend-service
labels:
app: backend # Pod bu etiketle işaretlendi
spec:
containers:
- image: "mcr.microsoft.com/dotnet/samples:aspnetapp"
name: aspnetapp-image
ports:
- containerPort: 8080
protocol: TCP
Bu tanımlama sayesinde, bu Pod artık app=backend etiketiyle cluster içerisinde aranabilir ve seçilebilir hale gelir.
2. Selector (Seçici) ile Trafik Yönetimi
Pod’larımızı etiketledikten sonra, bu Pod’lara trafik gönderecek olan Service objesini oluştururken bu etiketleri referans almamız gerekir. Service YAML dosyasındaki spec: selector alanı, trafiğin hangi etiketlere sahip Pod’lara yönlendirileceğini belirler.
YAML
apiVersion: v1
kind: Service
metadata:
name: backend-service
spec:
type: LoadBalancer
selector:
app: backend # Trafik, sadece bu etikete sahip Pod'lara gider
ports:
- port: 80
targetPort: 8080
protocol: TCP
Bu yapılandırma ile Azure Load Balancer, gelen istekleri app: backend etiketine sahip tüm aktif Pod’lar arasında paylaştırır. Eğer ileride Pod sayısını artırırsanız veya yeni Deployment’lar yaparsanız, aynı etiketi kullandığınız sürece servis objesi otomatik olarak yeni Pod’ları da kapsama alanına alacaktır.
Sonuç
Microsoft Azure AKS üzerinde ölçeklenebilir yapılar kurarken, Label ve Selector mantığını doğru kurgulamak trafiğin kesintisiz ve hatasız yönetilmesini sağlar. Etiketler sayesinde sadece trafik yönlendirmesi değil; izleme, loglama ve kaynak yönetimi gibi süreçleri de çok daha esnek bir şekilde gerçekleştirebilirsiniz.