Halaman ini menunjukkan cara menggunakan hardware penyimpanan eksternal, seperti Persistent Disk Compute Engine, sebagai volume sementara di workload Google Kubernetes Engine (GKE) Anda. Anda seharusnya sudah memahami Volumes dan StorageClasses Kubernetes.
Kapan penyimpanan sementara di Kubernetes digunakan
Penyimpanan sementara berguna dalam situasi apa pun saat workload hanya memerlukan data selama siklus proses aplikasi, seperti untuk pipeline pemrosesan data, tugas machine learning, batch processing, caching lokal, atau analisis. Secara default, bagian dari boot disk node GKE tersedia untuk digunakan sebagai penyimpanan sementara di Pod Anda. Pendekatan ini sering kali memerlukan perencanaan ruang yang cermat.
Volume sementara generik Kubernetes memungkinkan Anda meminta penyimpanan sementara untuk Pod secara eksplisit menggunakan PersistentVolumeClaims. GKE menyediakan Persistent Disk Compute Engine secara dinamis dan memasang disk tersebut ke node Anda. Jenis penyimpanan sementara ini berguna dalam situasi seperti berikut:
- Workload memiliki persyaratan performa tinggi, jadi Anda perlu mengontrol hardware penyimpanan.
- Anda memerlukan penyimpanan sementara khusus container sementara.
- Anda ingin menghindari penggunaan
emptyDir
untuk menyediakan penyimpanan sementara. VolumeemptyDir
masih berguna jika Anda ingin beberapa container berbagi data di penyimpanan sementara. - Anda menginginkan kapasitas penyimpanan sementara yang lebih besar daripada default GKE bawaan.
- Anda ingin menghindari keharusan untuk merencanakan ukuran dan jenis boot disk node di awal untuk cluster GKE mode Standard.
Jenis penyimpanan ephemeral di GKE
Secara umum, Anda dapat menggunakan kapasitas penyimpanan boot disk atau Persistent Disk khusus sebagai penyimpanan sementara di Pod dan container. Tabel berikut menjelaskan perbedaannya:
Jenis penyimpanan | Cara menggunakan | Deskripsi |
---|---|---|
Boot disk - Persistent Disk | Pasang volume menggunakan Untuk mengetahui petunjuknya, lihat Membuat volume. |
Penyimpanan efemeral yang diminta diambil dari bagian yang dicadangkan dari boot disk node. Ini adalah default pada cluster Autopilot dan Standard. Gunakan saat Pod memiliki permintaan penyimpanan sementara yang kecil atau saat Anda ingin membagikan data sementara di antara beberapa container di Pod. Autopilot
Standard Tidak ada batas ukuran, tetapi memerlukan perencanaan ukuran boot disk node dan jenis hardware penyimpanan dengan cermat. Untuk mengetahui detail tentang cara GKE menghitung reservasi penyimpanan sementara di boot disk node, lihat Reservasi penyimpanan sementara lokal. |
Disk SSD lokal |
Untuk mengetahui petunjuknya, lihat Menyediakan penyimpanan sementara dengan SSD lokal. |
Disk SSD lokal menggunakan kenaikan 375 GB tetap yang didukung
dalam cluster GKE mode Standard dan dalam node Autopilot
yang menjalankan GPU A100 (80 GB).
Gunakan saat Anda membutuhkan penyimpanan sementara dengan throughput tinggi. Untuk mengetahui detailnya, lihat Tentang SSD lokal untuk GKE. |
Persistent Disk Khusus |
Dokumen ini memberikan petunjuk untuk meminta jenis penyimpanan sementara ini. |
Google Cloud secara dinamis menyediakan hardware eksternal yang diminta, memasangnya ke node Anda, dan memasang volume yang diminta ke Pod Anda. Gunakan saat Pod memiliki permintaan penyimpanan efemeral yang besar atau saat Anda ingin mengontrol jenis Persistent Disk yang mendasarinya. Volume ini memiliki properti berikut:
Untuk mengetahui detail tentang jenis volume sementara ini, lihat Volume sementara umum. |
Harga
Penyimpanan yang Anda sediakan melalui volume sementara umum seperti yang dijelaskan dalam panduan ini ditagih berdasarkan harga disk Compute Engine.
Sebelum memulai
Sebelum memulai, pastikan Anda telah menjalankan tugas berikut:
- Aktifkan Google Kubernetes Engine API. Aktifkan Google Kubernetes Engine API
- Jika ingin menggunakan Google Cloud CLI untuk tugas ini,
instal lalu
lakukan inisialisasi
gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan
gcloud components update
.
- Pastikan Anda memiliki cluster GKE Autopilot atau Standard yang menjalankan versi 1.23 atau yang lebih baru.
- Pastikan Anda memiliki cukup kuota di project Google Cloud untuk hardware penyimpanan. Untuk mengelola kuota, baca artikel Melihat kuota untuk project Anda.
Membuat StorageClass
Dengan membuat StorageClass Kubernetes kustom, Anda dapat menentukan jenis penyimpanan yang akan disediakan berdasarkan persyaratan harga dan performa. Langkah ini bersifat opsional, tetapi direkomendasikan. Jika Anda ingin menggunakan StorageClass default GKE, yang memiliki jenis Persistent Disk pd-balanced
, lewati langkah ini.
Simpan manifes berikut sebagai
ephemeral-pd-class.yaml
:apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: ephemeral-ssd provisioner: pd.csi.storage.gke.io volumeBindingMode: WaitForFirstConsumer allowVolumeExpansion: true parameters: type: STORAGE_TYPE
Ganti
STORAGE_TYPE
dengan nama jenis Persistent Disk yang diinginkan, sepertipd-ssd
. Untuk daftar jenis yang didukung, baca Jenis Persistent Disk dalam dokumentasi Compute Engine.Buat StorageClass:
kubectl create -f ephemeral-pd-class.yaml
Meminta kapasitas penyimpanan sementara di Pod
Untuk menyediakan, memasang, dan menggunakan hardware eksternal sebagai penyimpanan sementara, tambahkan volume yang sesuai ke manifes Pod Anda dan tambahkan pemasangan volume ke spesifikasi container.
Simpan manifes berikut sebagai
ephemeral-ssd-deployment.yaml
:apiVersion: apps/v1 kind: Deployment metadata: name: ephemeral-deployment spec: replicas: 1 selector: matchLabels: storage: ephemeral template: metadata: labels: storage: ephemeral spec: containers: - name: ephemeral-container image: nginx resources: requests: cpu: 500m memory: 2Gi ephemeral-storage: 2Gi volumeMounts: - mountPath: "/short-term" name: ephemeral-volume volumes: - name: ephemeral-volume ephemeral: volumeClaimTemplate: metadata: labels: type: ephemeral spec: accessModes: ["ReadWriteOnce"] storageClassName: "ephemeral-ssd" resources: requests: storage: 1Ti
Manifes ini membuat PersistentVolumeClaim Kubernetes baru yang meminta PersistentVolume baru bernama
ephemeral-volume
dengan properti berikut:spec.volumes.ephemeral
: Jenis volumeephemeral
..spec.accessModes
: Mode akses volume, yang menentukan akses baca-tulis dari Pod dan berbagi volume antar-node. Contoh ini menggunakanReadWriteOnce
, yang memasang PersistentVolume ke satu node untuk mengakses satu atau beberapa Pod pada node tersebut. Untuk mengetahui detailnya, lihat Mode akses..spec.storageClassName
: Opsional, nama StorageClass yang Anda buat. Jika Anda menghapus kolom ini, GKE akan menggunakan StorageClass default dan menyediakan Persistent Diskpd-balanced
..spec.resources.requests.storage
: Kapasitas penyimpanan yang Anda inginkan.
Membuat Deployment:
kubectl create -f ephemeral-ssd-deployment.yaml
GKE menyediakan disk Compute Engine yang memenuhi persyaratan PersistentVolumeClaim dan memasang disk ke node. GKE memasang volume ke dalam Pod dan menyediakan kapasitas yang diminta ke container.
Memastikan GKE telah memasang volume sementara
Buat sesi shell di Pod:
kubectl exec -it deploy/ephemeral-deployment -- bash
Periksa volume yang terpasang:
df -h
Outputnya mirip dengan hal berikut ini:
Filesystem Size Used Available Use% Mounted on ... /dev/sdb 1006.9G 28.0K 1006.8G 0% /short-term /dev/sda1 94.3G 3.6G 90.6G 4% /etc/hosts /dev/sda1 94.3G 3.6G 90.6G 4% /dev/termination-log /dev/sda1 94.3G 3.6G 90.6G 4% /etc/hostname /dev/sda1 94.3G 3.6G 90.6G 4% /etc/resolv.conf ...
Keluar dari sesi shell:
exit