2 poin oleh GN⁺ 2024-08-07 | 1 komentar | Bagikan ke WhatsApp

Pengendali Persistent Volume Kubernetes

Gambaran umum

  • Pengendali yang menyinkronkan PersistentVolume (PV) dan PersistentVolumeClaim (PVC) di Kubernetes
  • Mengelola "pointer" dua arah antara PVC dan PV untuk mencegah kehilangan data
  • Beroperasi dalam mode high availability, serta mendukung kasus saat PVC meminta PV tertentu atau PV dicadangkan untuk PVC tertentu

Fitur utama

  • Menyinkronkan status PVC dan PV secara berkala
  • Jika PVC tidak meminta PV tertentu, mencari PV yang paling sesuai lalu melakukan binding
  • Jika PVC meminta PV tertentu, memeriksa apakah PV tersebut ada dan memenuhi syarat, lalu melakukan binding
  • Jika PVC sudah terikat, memeriksa statusnya dan memperbaikinya bila perlu

Cara kerja

  • Saat PVC dibuat atau diperbarui, metode syncClaim dipanggil
  • Jika PVC belum terikat, metode syncUnboundClaim dipanggil
  • Jika PVC sudah terikat, metode syncBoundClaim dipanggil
  • Saat PV dibuat atau diperbarui, metode syncVolume dipanggil

Metode utama

syncClaim

  • Memanggil syncUnboundClaim atau syncBoundClaim sesuai status PVC

syncUnboundClaim

  • Jika PVC tidak meminta PV tertentu, mencari PV yang paling sesuai dan mencoba melakukan binding
  • Jika PVC meminta PV tertentu, memeriksa apakah PV tersebut ada dan memenuhi syarat, lalu melakukan binding

syncBoundClaim

  • Jika PVC sudah terikat, memeriksa statusnya dan memperbaikinya bila perlu

syncVolume

  • Menjalankan tindakan yang sesuai berdasarkan status PV
  • Jika PV tidak digunakan, memperbarui status menjadi "Available"
  • Jika PV terikat ke PVC tertentu, memeriksa status PVC tersebut dan memperbaikinya bila perlu

Ringkasan GN⁺

  • Dokumen ini memberikan penjelasan terperinci tentang pengendali persistent volume di Kubernetes
  • Membantu memahami logika binding antara persistent volume dan persistent volume claim
  • Membahas cara kerja dalam mode high availability serta penanganan berbagai situasi pengecualian
  • Materi yang berguna bagi pengembang yang tertarik pada manajemen storage Kubernetes
  • Proyek lain dengan fungsi serupa antara lain OpenEBS dan Rook

1 komentar

 
GN⁺ 2024-08-07
Opini Hacker News
  • Perangkat lunak Space Shuttle sangat stabil, dengan bug yang sangat sedikit

    • Tiga versi terbaru masing-masing hanya memiliki satu kesalahan dari total 420.000 baris
    • Jumlah kesalahannya sangat sedikit dibandingkan program komersial
  • Kodenya bersifat umum dan ditulis dalam bahasa Go, sehingga terasa agak bertele-tele

    • Mungkin karena terbiasa dengan perangkat lunak sistem perusahaan sehingga terasa ada perbedaan dibanding perangkat lunak sistem
    • Bagi para kontributor proyek k8s, mungkin ada terlalu banyak komentar yang tidak perlu
  • Codebase di perusahaan baru tertata rapi, sehingga menyenangkan untuk dijelajahi

    • Banyak komentar, dan kodenya terstruktur dengan baik
    • Karena timnya kecil, kualitas kodenya tinggi
  • Rekam jejak keselamatan Space Shuttle tidak bagus, sehingga kini tidak lagi dioperasikan

    • Diragukan apakah 10 tahun lagi orang masih akan mengenang Space Shuttle secara positif
  • Dengan menggunakan structural pattern matching, blok if/else bisa disederhanakan

    • Ada alat yang dapat memeriksa pada waktu kompilasi apakah pencocokannya sudah lengkap
  • Kodenya tidak buruk dan mengikuti satu aturan yang konsisten

    • Jauh lebih baik daripada kode dengan berbagai gaya yang berbeda-beda
  • Menyediakan tautan ke diskusi tahun 2018

  • Menulis driver Kubernetes CSI adalah pengalaman yang menyenangkan

    • Driver CSI EFS atau EBS milik Amazon adalah contoh bagus dari codebase kecil
    • Driver itu sendiri sederhana, tetapi memuat logika yang kompleks
  • Adanya klausa else untuk setiap pernyataan if dianggap sebagai praktik yang aman

    • Modul 2.000 baris dan metode 200 baris itu merugikan
    • Komentar yang menjelaskan apa yang dilakukan kode tidak terlalu berguna
  • Menjelaskan cara menautkan rentang baris tertentu saat membagikan tautan file GitHub