2 puan yazan GN⁺ 2024-08-07 | 1 yorum | WhatsApp'ta paylaş

Kubernetes Kalıcı Birim Denetleyicisi

Genel Bakış

  • Kubernetes Kalıcı Birimlerini (PersistentVolume, PV) ve Kalıcı Birim Taleplerini (PersistentVolumeClaim, PVC) senkronize eden denetleyici
  • Veri kaybını önlemek için PVC ile PV arasındaki çift yönlü "işaretçileri" yönetir
  • Yüksek erişilebilirlik modunda çalışır; PVC'nin belirli bir PV talep ettiği veya bir PV'nin belirli bir PVC için rezerve edildiği durumları destekler

Başlıca İşlevler

  • PVC ve PV durumlarını periyodik olarak senkronize eder
  • PVC belirli bir PV talep etmediyse, en uygun PV'yi bulup bağlar
  • PVC belirli bir PV talep ettiyse, ilgili PV'nin var olup olmadığını ve koşulları karşılayıp karşılamadığını kontrol ettikten sonra bağlar
  • PVC zaten bağlandıysa, durumu kontrol eder ve gerekirse düzeltir

Çalışma Şekli

  • PVC oluşturulduğunda veya güncellendiğinde syncClaim metodu çağrılır
  • PVC bağlı değilse syncUnboundClaim metodu çağrılır
  • PVC bağlıysa syncBoundClaim metodu çağrılır
  • PV oluşturulduğunda veya güncellendiğinde syncVolume metodu çağrılır

Başlıca Metotlar

syncClaim

  • PVC'nin durumuna göre syncUnboundClaim veya syncBoundClaim çağrılır

syncUnboundClaim

  • PVC belirli bir PV talep etmediyse, en uygun PV bulunur ve bağlama denenir
  • PVC belirli bir PV talep ettiyse, ilgili PV'nin var olup olmadığı ve koşulları karşılayıp karşılamadığı kontrol edildikten sonra bağlanır

syncBoundClaim

  • PVC zaten bağlandıysa, durumu kontrol edilir ve gerekirse düzeltilir

syncVolume

  • PV'nin durumuna göre uygun işlem yapılır
  • PV kullanılmıyorsa, durumu "Available" olarak güncellenir
  • PV belirli bir PVC'ye bağlandıysa, ilgili PVC'nin durumu kontrol edilir ve gerekirse düzeltilir

GN⁺ Özeti

  • Bu belge, Kubernetes kalıcı birim denetleyicisine dair ayrıntılı bir açıklama sunar
  • Kalıcı Birim ile Kalıcı Birim Talebi arasındaki bağlama mantığını anlamaya yardımcı olur
  • Yüksek erişilebilirlik modundaki çalışma biçimini ve çeşitli istisna durumlarının nasıl ele alındığını kapsar
  • Kubernetes depolama yönetimiyle ilgilenen geliştiriciler için faydalı bir kaynaktır
  • Benzer işlevler sunan diğer projeler arasında OpenEBS ve Rook bulunur

1 yorum

 
GN⁺ 2024-08-07
Hacker News yorumu
  • Space Shuttle yazılımı son derece kararlıdır ve neredeyse hiç hata içermez

    • Son üç sürümün her birinde 420.000 satır içinde yalnızca bir hata vardı
    • Ticari programlarla karşılaştırıldığında hata sayısı çok düşüktür
  • Kod genel amaçlıdır ve Go diliyle yazıldığı için biraz ayrıntılıdır

    • Bunun nedeni, kurumsal yazılım deneyiminin fazla olup sistem yazılımıyla arasındaki farkın hissedilmesi olabilir
    • k8s projesine katkı yapanlar için gereksiz yorumlar fazla gelebilir
  • Yeni şirketin kod tabanı iyi düzenlenmiş olduğu için içinde gezinmek keyifli

    • Yorumlar bol ve kod iyi yapılandırılmış
    • Küçük bir ekip olduğu için kod kalitesi yüksek
  • Space Shuttle'ın güvenlik geçmişi iyi değildi, bu yüzden artık işletilmiyor

    • 10 yıl sonra insanların Space Shuttle'ı olumlu hatırlayıp hatırlamayacağı şüpheli
  • Yapısal desen eşleme kullanılırsa if/else blokları basitleştirilebilir

    • Derleme zamanında eşlemenin tam olup olmadığını kontrol edebilen araçlar var
  • Kod kötü değil ve tek bir kurala uyuyor

    • Farklı stillerde yazılmış kodlardan çok daha iyi
  • 2018'deki tartışmaya ait bağlantı paylaşılmış

  • Kubernetes CSI sürücüsü yazmak keyifliydi

    • Amazon'un EFS veya EBS CSI sürücüleri, küçük kod tabanına sahip iyi örneklerdir
    • Sürücünün kendisi basit ama içinde karmaşık mantık bulunuyor
  • Her if ifadesi için bir else ifadesi bulunması güvenli bir uygulama olarak görülüyor

    • 2.000 satırlık modüller ve 200 satırlık metotlar zararlıdır
    • Kodun ne yaptığını açıklayan yorumlar faydalı değildir
  • GitHub dosya bağlantılarında belirli satır aralıklarına nasıl bağlantı verileceği anlatılıyor