Apa itu Kubernetes volume?

Kubernetes volume adalah sebuah direktori yang menyimpan data dan bisa diakses oleh container dalam sebuah pod, yaitu unit terkecil yang bisa dijalankan di dalam Kubernetes cluster. Di dalam platform orchestrator container ini, volume berfungsi sebagai plugin yang menghubungkan container yang sifatnya sementara (ephemeral) dengan penyimpanan data permanen.

Sebuah volume di Kubernetes akan tetap ada selama pod yang terkait masih aktif. Kalau pod dengan ID uniknya dihapus, maka volume yang terhubung juga ikut hilang. Namun, jika pod dihapus lalu diganti dengan pod identik, Kubernetes akan otomatis membuat volume baru yang sama.

Untuk apa Kubernetes volume digunakan?

Dalam Kubernetes, sebuah node adalah sekumpulan resource IT yang dipakai untuk menjalankan container. Kubernetes akan me-mount volume yang dipakai pod ke node tempat pod tersebut berjalan. Dengan begitu, container bisa berpindah antar-infrastruktur tanpa kehilangan akses ke data eksternal yang dibutuhkan.

Pod menentukan volume mana yang akan dipakai serta lokasi mount di dalam containernya. Data di dalam volume lebih awet dibanding container yang ada di pod, karena container bisa mati dan hidup lagi sebagai unit sementara. Jadi, meskipun sebuah container crash, data di volume tetap aman.

Perlu dicatat bahwa volume di Kubernetes tidak bisa ditumpuk (volume di dalam volume), dan tidak ada link antar-volume. Jadi, pengguna harus menentukan sendiri mounting volume untuk setiap container dalam pod. Informasi tentang state yang diinginkan sebuah pod (termasuk volume) disimpan di API server Kubernetes dan dikendalikan oleh controller pusat.

Kubernetes juga mengelola deployment lewat kubelet, agent yang berjalan di setiap node. Misalnya, kubelet bisa mendeteksi kalau ada volume yang tidak bisa dipakai dua kali sekaligus, lalu melaporkan error. Setelah itu kubelet akan mencoba ulang dan bekerja sama dengan scheduler Kubernetes sampai menemukan penempatan volume yang sesuai.

Jenis-jenis Kubernetes volume

Kubernetes mendukung berbagai tipe volume, di antaranya:

  • EmptyDir. Volume yang otomatis dibuat ketika sebuah pod pertama kali dijalankan di node. Volume ini awalnya kosong, tapi bisa dibaca dan ditulis oleh semua container dalam pod.
  • HostPath. Volume yang me-mount direktori dari file system host node ke dalam pod.
  • Local volumes. Volume yang merepresentasikan storage lokal seperti partisi, direktori, atau disk.
  • Specialty volumes. Volume khusus untuk platform tertentu, misalnya AzureFileVolume dan AzureDiskVolume untuk Microsoft Azure, atau VsphereVolume untuk VMware vSphere.

Dalam beberapa kasus, satu volume bisa dipakai untuk berbagai keperluan dalam sebuah pod. Kubernetes menyediakan properti volumeMounts.subPath agar pengguna bisa menentukan subpath tertentu di dalam volume tersebut.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *