5 puan yazan mrchypark 2025-11-18 | Henüz yorum yok. | WhatsApp'ta paylaş

Merhaba, K8s kümesi işletirken CrashLoopBackOff durumuna düşen pod'lar, ImagePullBackOff durumundaki pod'lar ya da bir batch işi bittikten sonra Succeeded veya Failed olarak ortada kalan pod'lar yüzünden ortamın dağınık hale gelmesi sık görülür.

Bu pod'ların kaynak israfına yol açması ve izlemeyi zorlaştırması sorununu çözmek için, Rust tabanlı K8s operatörü kube-depod geliştirdim.

kube-depod basit bir TTL temizleyicisi değil. Odak noktası esneklik ve güvenlik.


🚀 Temel özellikler

1. Güçlü CEL politika motoru
Yalnızca "10 dakikayı geçmiş" pod'lar değil, CEL(Common Expression Language) ile çok daha ayrıntılı politikalar oluşturabilirsiniz.

# Örnek: yalnızca yeniden başlatma sayısı 5 veya daha fazla olan CrashLoopBackOff pod'larını sil  
when:  
  type: "CEL"  
  expression: |  
    status.containerStatuses.exists(c,  
      has(c.state.waiting) &&  
      c.state.waiting.reason == 'CrashLoopBackOff' &&  
      c.restartCount >= 5  
    )  

(age, status.phase gibi çeşitli değişkenleri destekler.)

2. Kazaları önleyen 'Opt-In' yaklaşımı
kube-depod, kümedeki tüm pod'ları izlemez. Yalnızca kullanıcının açıkça kube-depod/policy: "my-policy" gibi bir annotation eklediği pod'ları (Opt-In) temizlik hedefi olarak kabul eder. Böylece önemli pod'ların yanlışlıkla silinmesi en baştan engellenir.

3. Prodüksiyon ortamı için güvenlik önlemleri

  • PDB desteği: Delete yerine Evict aksiyonunu destekleyerek Pod Disruption Budget(PDB) kurallarına uyar ve pod'ları güvenli şekilde kaldırır.
  • DryRun: Politikanın nasıl çalışacağını dryRun: true ile güvenle test edebilirsiniz.
  • Hız sınırlama (Rate Limiting): Dakika başına silme sayısını sınırlayarak API sunucusunun aşırı yüklenmesini veya kümenin kararsızlaşmasını önler.
  • Sistem namespace koruması: kube-system gibi kritik namespace'leri varsayılan olarak korur.

4. Yüksek performans ve güçlü gözlemlenebilirlik

  • Rust ile yazılmıştır ve Distroless imaj kullandığı için hafif ve hızlıdır.
  • ArcSwap (kilitsiz politika önbelleği), DashMap (CEL derleme önbelleği) gibi yapılarla yüksek performans hedeflenmiştir.
  • Prometheus metrikleri ve CRD Status geri bildirimi (ör. InvalidCEL) sayesinde çalışma durumunu kolayca debug edebilirsiniz.

Benzer araçlar çok olsa da, CEL'in esnekliği, PDB desteği ve Opt-In tasarımı gibi işletim güvenliğine odaklanan araçlar nadirdi.

Helm chart da hazır olduğu için kolayca kurulabilir.
K8s kümesini daha temiz ve verimli yönetmek isteyenler için faydalı olmasını umuyorum.

GitHub deposu: https://github.com/mrchypark/kube-depod

İlgi ve geri bildirim her zaman memnuniyetle karşılanır! Teşekkürler.

Henüz yorum yok.

Henüz yorum yok.