Volume


Halaman ini menyediakan ringkasan volume di Kubernetes, dan penggunaannya dengan Google Kubernetes Engine (GKE).

Ringkasan

File di disk dalam container adalah tempat paling sederhana bagi aplikasi untuk menulis data, tetapi pendekatan ini memiliki kelemahan. File akan hilang saat container mengalami error atau berhenti karena alasan lain. Selain itu, file dalam container tidak dapat diakses oleh container lain yang berjalan dalam Pod yang sama. Abstraksi Volume Kubernetes dapat mengatasi kedua masalah ini.

Secara konseptual, volume adalah direktori yang dapat diakses oleh semua container dalam Pod. Sumber volume yang dideklarasikan dalam Spesifikasi pod menentukan cara direktori dibuat, media penyimpanan yang digunakan, dan konten awal direktori. Pod menentukan volume yang dikandungnya dan jalur tempat container memasang volume.

Jenis volume ephemeral memiliki masa aktif yang sama dengan Pod yang mencakupnya. Volume ini dibuat saat Pod dibuat, dan tetap ada setelah container dimulai ulang. Saat Pod dihentikan atau dihapus, volumenya akan mengikutinya.

Jenis volume lainnya adalah antarmuka dari penyimpanan tahan lama yang ada secara terpisah dari Pod. Tidak seperti volume ephemeral, data dalam volume yang didukung oleh penyimpanan yang tahan lama dipertahankan saat Pod dihapus. Volume hanya dilepas dan data dapat diserahkan ke Pod lain. Anda harus menggunakan resource PersistentVolume untuk mengelola siklus proses jenis penyimpanan yang tahan lama, bukan menentukannya secara langsung.

Jenis volume:

Volume berbeda dalam penerapan penyimpanan dan konten awalnya. Anda dapat memilih sumber volume yang paling sesuai dengan kasus penggunaan Anda. Beberapa sumber volume umum dijelaskan di bagian berikut. Untuk mengetahui daftar lengkap jenis volume, baca dokumentasi Kubernetes Volumes.

emptyDir

Volume emptyDir menyediakan direktori kosong yang dapat dibaca dan ditulis oleh container dalam Pod. Jika Pod dihapus dari node karena alasan apa pun, data dalam emptyDir akan dihapus selamanya. Volume emptyDir disimpan pada media apa pun yang mendukung node, yang mungkin berupa disk, SSD, atau penyimpanan jaringan bergantung pada lingkungan Anda. Volume emptyDir berguna untuk scratch space dan berbagi data antara beberapa container di Pod.

Semua pemasangan emptyDir adalah bagian dari penyimpanan ephemeral node, yang juga mencakup lapisan yang dapat ditulis dan log container. Secara default, GKE Autopilot menetapkan penyimpanan sementara ke 1 GiB untuk memberi aplikasi Anda sedikit ruang agar dapat membuat beberapa file. Jika memerlukan lebih banyak atau lebih sedikit, Anda dapat menyesuaikan penyimpanan ephemeral di Deployment dengan menetapkan permintaan resource untuk ephemeral-storage.

Jika menggunakan container dengan kumpulan node Linux, Anda dapat menetapkan kolom emptyDir.medium ke Memory untuk memberi tahu Kubernetes agar memasang tmpfs (sistem file yang didukung RAM). Namun, hal ini tidak didukung di container Windows Server.

ConfigMap

Resource ConfigMap menyediakan cara untuk memasukkan data konfigurasi ke dalam Pod. Data yang disimpan dalam objek ConfigMap dapat direferensikan dalam volume jenis ConfigMap, lalu digunakan melalui file yang berjalan di Pod. File dalam volume ConfigMap ditentukan oleh resource ConfigMap.

Rahasia

Volume Secret digunakan untuk membuat data sensitif, seperti sandi, token OAuth, dan kunci SSH, yang tersedia untuk aplikasi. Data yang disimpan dalam objek Secret dapat direferensikan dalam volume jenis Secret, lalu digunakan melalui file yang berjalan di Pod.

downwardAPI

Volume downwardAPI menyediakan data Downward API untuk aplikasi. Data ini mencakup informasi tentang Pod dan container tempat aplikasi berjalan. Misalnya, Pod dapat dikonfigurasi untuk mengekspos DownwardAPIVolumeFile ke aplikasi yang menyertakan namespace dan alamat IP Pod. Untuk mengetahui daftar lengkap jenis data yang dapat Anda tambahkan, lihat Kemampuan Downward API.

PersistentVolumeClaim

Volume PersistentVolumeClaim dapat digunakan oleh operator cluster untuk menyediakan penyimpanan yang tahan lama untuk digunakan oleh aplikasi. Pod menggunakan PersistentVolumeClaim untuk memasang volume yang didukung oleh penyimpanan yang tahan lama ini.

Langkah selanjutnya