Kubernetes mimarisinde sürekliliği sağlayan en kritik bileşenlerden biri ReplicaSet objesidir. ReplicaSet, küme (cluster) içerisinde belirli sayıda Pod’un her an çalışır durumda kalmasını garanti altına alan denetleyicidir. Temel görevleri şunlardır:
- Belirtilen hedef sayıya ulaşana kadar Pod oluşturur.
- Herhangi bir nedenle silinen veya çöken Pod’u anında tespit edip yeniden oluşturur.
- Eğer ortamda olması gerekenden fazla Pod varsa, fazlalıkları temizleyerek kaynak dengesini sağlar.
Bu makalede, Azure Kubernetes Service (AKS) üzerinde çalışan bir Deployment’ın arka planındaki ReplicaSet mekanizmasını ve bir Pod silindiğinde sistemin nasıl “kendi kendini iyileştirdiğini” (self-healing) uygulamalı olarak inceleyeceğiz.
Mevcut Durumun Kontrol Edilmesi
Bir önceki aşamada oluşturduğumuz Nginx Deployment’ı, arka planda bir ReplicaSet ve buna bağlı 3 adet Pod oluşturmuştu. Mevcut durumu kontrol etmek için aşağıdaki komutları kullanıyoruz:
Bash
kubectl get replicaset
kubectl get pods

[RESİM 1: kubectl get replicaset ve get pods çıktıları]
Çıktıda görebileceğiniz üzere; DESIRED (İstenen), CURRENT (Mevcut) ve READY (Hazır) değerlerinin tamamı 3 olarak görünmektedir.
Uygulama: Bir Pod’u Manuel Silmek ve Sonuçları İzlemek
ReplicaSet’in çalışma mantığını görmek için mevcut Pod’lardan birini manuel olarak sileceğiz. Ancak bu işlemi yaparken Kubernetes’in tepkisini canlı olarak izlemek için -w (watch) parametresini kullanacağız.
Yeni bir terminal penceresinde şu komutu çalıştırarak izlemeyi başlatın:
Bash
kubectl get pods -w

[RESİM 2: Pod durumlarının canlı izlenmesi – Başlangıç]
Şimdi, asıl terminal pencerenizden rastgele bir Pod’u silebilirsiniz:
Bash
kubectl delete pod <pod-adi>

[RESİM 3: kubectl delete pod komutunun çalıştırılması]
ReplicaSet’in Tepkisi ve Log Analizi
Silme komutunu verdikten sonra izleme (watch) ekranında şu süreç gerçekleşir:
- Seçtiğiniz Pod
Terminating(Sonlandırılıyor) durumuna geçer ve silinir. - ReplicaSet, çalışan Pod sayısının 2’ye düştüğünü saniyenin altında bir sürede fark eder.
- Hemen yeni bir Pod planlar (
Pending) ve oluşturma sürecini (ContainerCreating) başlatır. - Çok kısa bir süre içinde yeni Pod
Runningdurumuna geçer.

[RESİM 4: Pod’un silinme ve yeni Pod’un benzersiz ID ile oluşma süreci]
Burada dikkat edilmesi gereken en önemli nokta, yeni oluşan Pod’un ismidir. Silinen Pod’un ismindeki benzersiz (unique) ID gider, yerine ReplicaSet tarafından atanan yepyeni bir ID gelir.
Sonuç
Gördüğünüz üzere, ReplicaSet sizin manuel müdahalenize gerek kalmadan, tanımlanan “istenen durumu” (desired state) korumak için otomatik olarak çalışır. Bu mekanizma, AKS üzerinde çalışan uygulamalarınızın yüksek erişilebilirlikli ve hataya dayanıklı olmasını sağlayan temel unsurdur.