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
- Pelajari cara mereferensikan volume dalam Pod.
- Pelajari PersistentVolumes, PersistentVolumeClaims, dan penyediaan penyimpanan dinamis.
- Mengonfigurasi Pod untuk menggunakan volume bagi penyimpanan.
- Tambahkan data ConfigMap ke volume.