Driver CSI Persistent Disk Compute Engine adalah cara utama untuk mengakses Penyimpanan Hyperdisk dengan cluster GKE.
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
initialize
gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan
gcloud components update
.
- Tetapkan region dan zona default ke salah satu nilai yang didukung.
Persyaratan
Untuk menggunakan volume Hyperdisk di GKE, cluster Anda harus memenuhi persyaratan berikut:
- Gunakan cluster Linux yang menjalankan GKE versi 1.26 atau yang lebih baru. Jika Anda menggunakan saluran rilis, pastikan saluran tersebut memiliki versi GKE minimum atau yang lebih baru yang diperlukan untuk driver ini.
- Pastikan driver CSI Persistent Disk Compute Engine diaktifkan. Driver Persistent Disk Compute Engine diaktifkan secara default pada cluster Autopilot dan Standard baru dan tidak dapat dinonaktifkan atau diedit saat menggunakan Autopilot. Jika Anda perlu menambahkan atau menghapus driver CSI Persistent Disk Compute Engine secara manual dari cluster, baca artikel Mengaktifkan CSI Persistent Disk Driver Compute Engine di cluster yang ada.
Membuat volume Hyperdisk untuk GKE
Bagian ini menyajikan ringkasan tentang pembuatan volume Hyperdisk yang didukung oleh driver CSI Compute Engine di GKE.
Membuat StorageClass
Kolom Type
penyimpanan Persistent Disk berikut disediakan oleh driver CSI Persistent Disk Compute Engine untuk mendukung Hyperdisk:
hyperdisk-balanced
hyperdisk-throughput
hyperdisk-extreme
Untuk membuat StorageClass baru dengan level throughput atau IOPS yang Anda inginkan, gunakan
pd.csi.storage.gke.io
di kolom penyedia, dan tentukan salah satu
jenis penyimpanan Hyperdisk.
Setiap jenis Hyperdisk memiliki nilai default untuk performa yang ditentukan oleh ukuran disk awal yang disediakan. Saat membuat StorageClass, Anda dapat secara opsional menentukan parameter berikut bergantung pada jenis Hyperdisk. Jika Anda menghapus parameter ini, GKE akan menggunakan default jenis disk berbasis kapasitas.
Parameter | Jenis Hyperdisk | Penggunaan |
---|---|---|
provisioned-throughput-on-create |
Hyperdisk Seimbang, Throughput Hyperdisk | Nyatakan nilai throughput dalam MiBps menggunakan penentu "Mi"; misalnya, jika throughput yang diperlukan adalah 250 MiBps, tentukan "250Mi" saat membuat StorageClass. |
provisioned-iops-on-create |
Hyperdisk Seimbang, Hyperdisk IOPS | Nilai IOPS harus dinyatakan tanpa penentu apa pun; misalnya, jika Anda memerlukan 7.000 IOPS, tentukan "7000" saat membuat StorageClass. |
Untuk panduan tentang nilai yang diizinkan untuk throughput atau IOPS, lihat Merencanakan level performa untuk volume Hyperdisk Anda.
Contoh berikut menunjukkan cara membuat StorageClass untuk setiap jenis Hyperdisk:
Hyperdisk Balanced
Simpan manifes berikut dalam file bernama
hdb-example-class.yaml
:apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: balanced-storage provisioner: pd.csi.storage.gke.io volumeBindingMode: WaitForFirstConsumer allowVolumeExpansion: true parameters: type: hyperdisk-balanced provisioned-throughput-on-create: "250Mi" provisioned-iops-on-create: "7000"
Buat StorageClass:
kubectl create -f hdb-example-class.yaml
Hyperdisk Throughput
Simpan manifes berikut dalam file bernama
hdt-example-class.yaml
:apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: throughput-storage provisioner: pd.csi.storage.gke.io volumeBindingMode: WaitForFirstConsumer allowVolumeExpansion: true parameters: type: hyperdisk-throughput provisioned-throughput-on-create: "50Mi"
Buat StorageClass:
kubectl create -f hdt-example-class.yaml
Hyperdisk Extreme
Simpan manifes berikut dalam file bernama
hdx-example-class.yaml
:apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: extreme-storage provisioner: pd.csi.storage.gke.io volumeBindingMode: WaitForFirstConsumer allowVolumeExpansion: true parameters: type: hyperdisk-extreme provisioned-iops-on-create: "50000"
Buat StorageClass:
kubectl create -f hdx-example-class.yaml
Untuk menemukan nama StorageClass yang tersedia di cluster Anda, jalankan perintah berikut:
kubectl get sc
Membuat PersistentVolumeClaim
Anda dapat membuat PersistentVolumeClaim yang mereferensikan StorageClass driver CSI Persistent Disk Compute Engine.
Hyperdisk Balanced
Dalam contoh ini, Anda menentukan target kapasitas penyimpanan Volume Seimbang Hyperdisk sebagai 20 GiB.
Simpan manifes PersistentVolumeClaim berikut dalam file bernama
pvc-example.yaml
:kind: PersistentVolumeClaim apiVersion: v1 metadata: name: podpvc spec: accessModes: - ReadWriteOnce storageClassName: balanced-storage resources: requests: storage: 20Gi
Terapkan PersistentVolumeClaim yang mereferensikan StorageClass yang Anda buat dari contoh sebelumnya:
kubectl apply -f pvc-example.yaml
Hyperdisk Throughput
Dalam contoh ini, Anda menentukan kapasitas penyimpanan yang ditargetkan untuk volume Throughput Hyperdisk sebagai 2 TiB.
Simpan manifes PersistentVolumeClaim berikut dalam file bernama
pvc-example.yaml
:kind: PersistentVolumeClaim apiVersion: v1 metadata: name: podpvc spec: accessModes: - ReadWriteOnce storageClassName: throughput-storage resources: requests: storage: 2Ti
Terapkan PersistentVolumeClaim yang mereferensikan StorageClass yang Anda buat dari contoh sebelumnya:
kubectl apply -f pvc-example.yaml
Ekstrem Hyperdisk
Dalam contoh ini, Anda menentukan kapasitas penyimpanan minimum volume Ekstrem Hyperdisk sebesar 64 GiB.
Simpan manifes PersistentVolumeClaim berikut dalam file bernama
pvc-example.yaml
:kind: PersistentVolumeClaim apiVersion: v1 metadata: name: podpvc spec: accessModes: - ReadWriteOnce storageClassName: extreme-storage resources: requests: storage: 64Gi
Terapkan PersistentVolumeClaim yang mereferensikan StorageClass yang Anda buat dari contoh sebelumnya:
kubectl apply -f pvc-example.yaml
Membuat Deployment untuk menggunakan volume Hyperdisk
Saat menggunakan Pod dengan PersistentVolumes, sebaiknya gunakan pengontrol workload (seperti Deployment atau StatefulSet).
Contoh berikut akan membuat manifes yang mengonfigurasi Pod untuk men-deploy server web Nginx menggunakan PersistentVolumeClaim yang dibuat di bagian sebelumnya. Simpan contoh manifes berikut sebagai
hyperdisk-example-deployment.yaml
:apiVersion: apps/v1 kind: Deployment metadata: name: web-server-deployment labels: app: nginx spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx volumeMounts: - mountPath: /var/lib/www/html name: mypvc volumes: - name: mypvc persistentVolumeClaim: claimName: podpvc readOnly: false
Untuk membuat Deployment berdasarkan file manifes
hyperdisk-example-deployment.yaml
, jalankan perintah berikut:kubectl apply -f hyperdisk-example-deployment.yaml
Konfirmasi bahwa Deployment berhasil dibuat:
kubectl get deployment
Perlu waktu beberapa menit bagi instance Hyperdisk untuk menyelesaikan penyediaan. Setelah penyediaan selesai, deployment akan melaporkan status
READY
.Anda dapat memeriksa progresnya dengan memantau status PersistentVolumeClaim dengan menjalankan perintah berikut:
kubectl get pvc
Menyediakan volume Hyperdisk dari snapshot
Untuk membuat volume Hyperdisk baru dari snapshot Persistent Disk yang ada, gunakan Konsol Google Cloud, Google Cloud CLI, atau Compute Engine API. Untuk mempelajari cara membuat snapshot Persistent Disk, lihat Membuat dan menggunakan snapshot volume.
Konsol
Buka halaman Disks di Konsol Google Cloud.
Klik Create Disk.
Di bagian Disk Type, pilih salah satu opsi berikut untuk jenis disk:
- Hyperdisk Seimbang
- Hyperdisk Extreme
- Throughput Hyperdisk
Di bagian Disk source type, klik Snapshot.
Pilih nama snapshot yang akan dipulihkan.
Pilih ukuran disk baru, dalam GiB. Jumlah ini harus sama dengan atau lebih besar dari disk sumber asli untuk snapshot.
Tetapkan Throughput yang disediakan atau IOPS yang disediakan yang Anda inginkan untuk disk, jika berbeda dengan nilai default.
Klik Create untuk membuat volume Hyperdisk.
gcloud
Jalankan perintah gcloud compute disks create
untuk membuat volume Hyperdisk dari snapshot.
Hyperdisk Balanced
gcloud compute disks create DISK_NAME \
--size=SIZE \
--source-snapshot=SNAPSHOT_NAME \
--provisioned-throughput=TRHROUGHPUT_LIMIT \
--provisioned-iops=IOPS_LIMIT \
--type=hyperdisk-balanced
Ganti kode berikut:
DISK_NAME
: nama disk baru.SIZE
: ukuran disk baru, dalam gigabyte (GiB) atau tebibyte (TiB). Lihat dokumentasi Compute Engine untuk batasan kapasitas terbaru.SNAPSHOT_NAME
: nama snapshot yang dipulihkan.THROUGHPUT_LIMIT
: Opsional. Untuk Disk Seimbang Hyperdisk, ini adalah bilangan bulat yang mewakili throughput, diukur dalam MiBps, yang dapat ditangani oleh disk. Lihat dokumentasi Compute Engine untuk batasan terbaru.IOPS_LIMIT
: Opsional. Untuk disk Seimbang Hyperdisk, ini adalah jumlah IOPS yang dapat ditangani disk. Baca dokumentasi Compute Engine untuk mengetahui batasan performa terbaru.
Hyperdisk Throughput
gcloud compute disks create DISK_NAME \
--size=SIZE \
--source-snapshot=SNAPSHOT_NAME \
--provisioned-throughput=TRHROUGHPUT_LIMIT \
--type=hyperdisk-throughput
Ganti kode berikut:
DISK_NAME
: nama disk baru.SIZE
: ukuran disk baru, dalam gigabyte (GiB atau GB) atau tebibyte (TiB atau TB). Lihat dokumentasi Compute Engine untuk batasan kapasitas terbaru.SNAPSHOT_NAME
: nama snapshot yang dipulihkan.THROUGHPUT_LIMIT
: Opsional: Untuk disk Throughput Hyperdisk, ini adalah bilangan bulat yang mewakili throughput, diukur dalam MiBps, yang dapat ditangani disk. Baca dokumentasi Compute Engine untuk mengetahui batasan performa terbaru.
Hyperdisk Extreme
gcloud compute disks create DISK_NAME \
--size=SIZE \
--source-snapshot=SNAPSHOT_NAME \
--provisioned-iops=IOPS_LIMIT \
--type=hyperdisk-iops
Ganti kode berikut:
DISK_NAME
: nama disk baru.SIZE
: ukuran disk baru, dalam gigabyte (GiB atau GB) atau tebibyte (TiB atau TB). Lihat dokumentasi Compute Engine untuk batasan kapasitas terbaru.SNAPSHOT_NAME
: nama snapshot yang dipulihkan.IOPS_LIMIT
: Opsional: Untuk disk Hyperdisk Ekstrem, ini adalah jumlah operasi I/O per detik yang dapat ditangani disk. Baca dokumentasi Compute Engine untuk mengetahui batasan performa terbaru.
Membuat snapshot untuk volume Hyperdisk
Untuk membuat snapshot dari volume Hyperdisk, ikuti langkah yang sama seperti membuat snapshot untuk volume Persistent Disk:
Mengupdate throughput yang disediakan atau IOPS untuk volume Hyperdisk yang ada
Bagian ini membahas cara mengubah performa yang disediakan untuk volume Hyperdisk.
Throughput
Memperbarui throughput yang disediakan hanya didukung untuk volume Hyperdisk Seimbang dan Hyperdisk Throughput.
Untuk memperbarui level throughput yang disediakan untuk volume Hyperdisk Anda, ikuti petunjuk Konsol Google Cloud, gcloud CLI, atau Compute Engine API dalam Mengubah performa yang disediakan untuk volume Hyperdisk.
Anda dapat mengubah tingkat throughput yang disediakan (hingga sekali setiap 4 jam) untuk volume Hyperdisk setelah pembuatan volume. Mungkin perlu waktu hingga 15 menit untuk menerapkan tingkat throughput baru. Selama perubahan performa, SLA dan SLO performa tidak akan diterapkan. Anda dapat mengubah tingkat throughput volume yang ada kapan saja, terlepas dari apakah disk terpasang ke instance yang sedang berjalan atau tidak.
Tingkat throughput baru yang Anda tentukan harus mematuhi nilai yang didukung untuk volume Hyperdisk.
IOPS
Memperbarui IOPS yang disediakan hanya didukung untuk volume Hyperdisk Seimbang dan Hyperdisk Ekstrem.
Guna memperbarui level IOPS yang disediakan untuk volume Hyperdisk Anda, ikuti petunjuk Konsol Google Cloud, gcloud CLI, atau Compute Engine API dalam Mengubah performa yang disediakan untuk volume Hyperdisk.
Anda dapat mengubah level IOPS yang disediakan (hingga sekali setiap 4 jam) untuk volume IOPS Hyperdisk setelah pembuatan volume. Level IOPS baru mungkin memerlukan waktu hingga 15 menit untuk diterapkan. Selama perubahan performa, SLA dan SLO performa tidak akan berlaku. Anda dapat mengubah level IOPS volume yang ada kapan saja, terlepas dari apakah disk terpasang ke instance yang sedang berjalan atau tidak.
Level IOPS baru yang Anda tentukan harus mematuhi nilai yang didukung untuk volume Hyperdisk.
Guna mengupdate level IOPS yang disediakan untuk volume Hyperdisk, Anda harus mengidentifikasi nama Persistent Disk yang mendukung resource PersistentVolumeClaim dan PersistentVolume:
Buka Object browser di Konsol Google Cloud.
Temukan entri untuk objek PersistentVolumeClaim Anda.
Klik link Volume .
Buka tab YAML pada PersistentVolume yang terkait. Temukan nilai
volumeHandle
CSI di tab ini.Perhatikan elemen terakhir dari handle ini (harus memiliki nilai seperti "
pvc-XXXXX
"). Ini adalah nama PersistentVolumeClaim. Anda juga harus memperhatikan project dan zonanya.
Memantau throughput atau IOPS pada volume Hyperdisk
Untuk memantau performa yang disediakan untuk volume Hyperdisk Anda, lihat Menganalisis IOPS dan throughput yang disediakan dalam dokumentasi Compute Engine.
Pemecahan masalah
Bagian ini berisi panduan pemecahan masalah untuk menyelesaikan masalah volume Hyperdisk di GKE.
Tidak dapat mengubah performa atau kapasitas: rasio di luar rentang
Error berikut terjadi saat Anda mencoba mengubah level atau kapasitas performa yang disediakan, tetapi tingkat performa atau kapasitas yang Anda pilih berada di luar rentang yang dapat diterima untuk volume tersebut:
Requested provisioned throughput cannot be higher than <value>.
Requested provisioned throughput cannot be lower than <value>.
Requested provisioned throughput is too high for the requested disk size.
Requested provisioned throughput is too low for the requested disk size.
Requested disk size is too high for current provisioned throughput.
Throughput yang disediakan untuk volume Throughput Hyperdisk harus memenuhi persyaratan berikut:
- Kapasitas minimal 10 MiBps per TiB, dan tidak lebih dari 90 MiBps per TiB kapasitas.
- Maksimal 600 MiBps per volume.
Untuk mengatasi masalah ini, perbaiki throughput atau kapasitas yang diminta agar berada dalam rentang yang diizinkan dan keluarkan ulang perintah.
Tidak dapat mengubah performa: kapasitas dibatasi
Error berikut terjadi saat Anda mencoba mengubah level performa yang disediakan, tetapi level performanya telah diubah dalam 4 jam terakhir:
Cannot update provisioned throughput due to being rate limited.
Cannot update provisioned iops due to being rate limited.
Performa yang disediakan oleh volume Throughput Hyperdisk dan IOPS dapat diperbarui sekali setiap 4 jam. Untuk mengatasi masalah ini, tunggu timer pendinginan hingga volume berlalu, lalu keluarkan ulang perintah.
Langkah selanjutnya
- Pelajari cara memigrasikan volume Persistent Disk ke Hyperdisk.
- Pelajari cara menggunakan ekspansi volume.
- Pelajari cara menggunakan snapshot volume.
- Baca selengkapnya tentang driver di GitHub.