Tentang SSD Lokal untuk GKE


Solid State Drive (SSD) lokal adalah drive SSD berukuran tetap yang dapat dipasang ke satu VM Compute Engine. Anda dapat menggunakan SSD Lokal di GKE untuk mendapatkan penyimpanan berperforma tinggi yang tidak persisten (efemeral) yang terpasang ke setiap node di cluster Anda. SSD Lokal juga memberikan throughput yang lebih tinggi dan latensi yang lebih rendah daripada disk standar.

Pada versi 1.25.3-gke.1800 dan yang lebih baru, Anda dapat mengonfigurasi node pool GKE untuk menggunakan SSD Lokal dengan antarmuka NVMe untuk penyimpanan efemeral lokal atau block storage mentah.

Jika menggunakan GKE dengan cluster Standard, Anda dapat menambahkan volume SSD Lokal ke node saat membuat node pool. Hal ini meningkatkan performa penyimpanan efemeral untuk workload Anda yang menggunakan volume emptyDir atau PersistentVolumes lokal. Anda dapat membuat node pool dengan SSD Lokal dalam batas jenis mesin cluster dan kuota project Anda.

Disk SSD Lokal hanya dipasang ke satu node, dan node itu sendiri bersifat efemeral. Workload dapat dijadwalkan ke node yang berbeda kapan saja.

Untuk informasi selengkapnya tentang manfaat dan batasan SSD Lokal, seperti performa dan jumlah disk SSD yang diizinkan per jenis mesin, lihat SSD Lokal dalam dokumentasi Compute Engine.

Alasan memilih SSD Lokal untuk GKE

SSD Lokal merupakan pilihan tepat jika workload Anda memiliki salah satu persyaratan berikut:

  • Anda ingin menjalankan aplikasi yang mendownload dan memproses data, seperti AI atau machine learning, analisis, batch processing, caching lokal, dan database dalam memori.
  • Aplikasi Anda memiliki kebutuhan penyimpanan khusus dan Anda menginginkan akses blok mentah di penyimpanan efemeral berperforma tinggi.
  • Anda ingin menjalankan aplikasi data khusus dan ingin mengoperasikan volume SSD Lokal seperti cache tingkat node untuk Pod Anda. Anda dapat menggunakan pendekatan ini untuk meningkatkan performa pada aplikasi database dalam memori seperti Aerospike atau Redis.

Penyimpanan efemeral

Sebaiknya gunakan opsi --ephemeral-storage-local-ssd guna menyediakan SSD Lokal untuk penyimpanan efemeral node (ini adalah setelan default jika Anda menggunakan seri mesin generasi ketiga). Pendekatan ini menempatkan volume emptyDir, lapisan yang dapat ditulisi container, dan image yang bersama-sama membentuk penyimpanan efemeral node Anda di SSD Lokal. Manfaatnya meliputi bandwidth I/O yang lebih baik dibandingkan Persistent Disk default dan waktu startup Pod yang lebih baik.

Menggunakan SSD Lokal untuk penyimpanan efemeral node berarti bahwa volume SSD Lokal boot disk tidak tersedia untuk penggunaan lain. Jangan memodifikasi perangkat SSD Lokal seperti /dev/nvme* secara langsung menggunakan Daemonset, HostPath, atau mekanisme lainnya yang memiliki hak istimewa; jika tidak, node tersebut dapat gagal. Jika Anda memerlukan kontrol terperinci atas volume SSD Lokal, gunakan pendekatan blok mentah.

Block device storage

Block device storage memungkinkan akses acak ke data di blok berukuran tetap. Beberapa aplikasi khusus memerlukan akses langsung ke block device storage karena, misalnya, lapisan sistem filenya memberikan overhead yang tidak diperlukan.

Skenario umum untuk penggunaan block device storage meliputi berikut ini:

  • Database di mana data diatur langsung di penyimpanan pokoknya.
  • Software yang mengimplementasikan semacam layanan penyimpanan (sistem penyimpanan software-defined).

Pada GKE versi v1.25.3-gke.1800 dan yang lebih baru, Anda dapat membuat cluster dan node pool dengan SSD NVMe lokal blok mentah terpasang, menggunakan opsi --local-nvme-ssd-block. Selanjutnya, Anda dapat menyesuaikan block storage dengan memformat sistem file pilihan (seperti ZFS atau HDFS) dan mengonfigurasi RAID. Opsi ini cocok jika Anda memerlukan kontrol tambahan untuk menjalankan workload yang secara khusus memerlukan akses ke block storage yang didukung oleh SSD Lokal.

Anda juga dapat menggunakan pendekatan akses blok dengan SSD Lokal jika Anda ingin cache data terpadu berbagi data ke seluruh Pod, dan data tersebut terikat dengan siklus proses node. Untuk melakukannya, instal DaemonSet dengan konfigurasi RAID, format sistem file, dan gunakan PersistentVolume lokal untuk berbagi data ke seluruh Pod.

Persyaratan mesin

Cara Anda menyediakan SSD Lokal untuk cluster GKE dan node pool bergantung pada jenis mesin pokoknya. GKE mendukung volume SSD Lokal pada seri mesin Compute Engine generasi pertama, kedua, dan ketiga. Volume SSD Lokal memerlukan jenis mesin n1-standard-1 atau lebih besar. Jenis mesin default, e2-medium tidak didukung. Untuk mengidentifikasi seri mesin, gunakan nomor dalam nama jenis mesin. Misalnya, mesin N1 adalah generasi pertama dan mesin N2 adalah generasi kedua. Untuk mengetahui daftar seri dan jenis mesin yang tersedia, lihat Panduan perbandingan dan resource kelompok mesin dalam dokumentasi Compute Engine.

Persyaratan seri mesin generasi pertama dan kedua

Untuk menggunakan seri mesin generasi pertama atau kedua dengan SSD Lokal, cluster atau node pool Anda harus menjalankan GKE versi 1.25.3-gke.1800 atau yang lebih baru.

Untuk menyediakan SSD Lokal di seri mesin generasi pertama atau kedua, tentukan jumlah volume SSD Lokal yang akan digunakan dengan VM Anda. Untuk mengetahui daftar seri mesin dan jumlah SSD Lokal terkait yang diizinkan, lihat Memilih jumlah SSD Lokal yang valid dalam dokumentasi Compute Engine.

Persyaratan seri mesin generasi ketiga

Jika Anda ingin menggunakan seri mesin generasi ketiga dengan SSD Lokal, cluster atau node pool Anda harus menjalankan salah satu versi GKE berikut atau yang lebih baru:

  • 1.25.13-gke.200 hingga 1.26
  • 1.26.8-gke.200 hingga 1.27
  • 1.27.5-gke.200 hingga 1.28
  • 1.28.1-gke.200 hingga 1.29

Untuk seri mesin generasi ketiga, setiap jenis mesin telah dikonfigurasi sebelumnya tanpa SSD Lokal, atau dengan volume SSD Lokal dalam jumlah yang tetap. Anda tidak perlu menentukan jumlah volume SSD Lokal yang akan disertakan. Sebagai gantinya, kapasitas SSD Lokal yang tersedia untuk cluster Anda ditentukan secara implisit sebagai bagian dari bentuk VM.

Untuk mengetahui daftar seri mesin dan jumlah SSD Lokal terkait yang diizinkan, lihat Memilih jumlah SSD Lokal yang valid dalam dokumentasi Compute Engine.

Pola penggunaan untuk volume SSD Lokal

Untuk menggunakan volume SSD Lokal di cluster Anda, ikuti langkah-langkah umum berikut:

  1. Sediakan node pool dengan SSD Lokal terpasang: Untuk membuat node pool GKE dengan SSD Lokal terpasang, teruskan parameter penyimpanan efemeral atau block storage mentah saat Anda memanggil perintah create cluster. Menetapkan parameter SSD Lokal akan membuat node pool GKE dengan SSD Lokal terpasang dan dikonfigurasi sebagai penyimpanan efemeral lokal atau block storage mentah, bergantung pada parameter yang Anda pilih. Untuk mempelajari lebih lanjut opsi penyediaan SSD Lokal, lihat parameter SSD Lokal.
  2. Akses data dari volume SSD Lokal: Untuk menggunakan data dari volume SSD Lokal, Anda dapat menggunakan konstruksi Kubernetes seperti emptyDir atau volume persisten lokal. Untuk mempelajari opsi ini lebih lanjut, lihat Akses SSD Lokal.

Parameter SSD Lokal di GKE

Tabel berikut merangkum rekomendasi parameter yang disediakan GKE untuk menyediakan penyimpanan SSD Lokal pada cluster. Anda dapat menggunakan gcloud CLI untuk meneruskan parameter ini.

Jenis SSD Lokal Perintah gcloud CLI Ketersediaan GKE Profil SSD Lokal
SSD Lokal Penyimpanan Efemeral gcloud container clusters create
--ephemeral-storage-local-ssd
v1.25.3-gke.1800 atau yang lebih baru

Teknologi penyimpanan: NVMe

Data dibagikan ke seluruh pod: Tidak

Siklus proses data: Pod

Ukuran dan kebutuhan akan konfigurasi RAID: Hingga 9 TiB. GKE akan otomatis mengonfigurasi RAID di balik layar.

Format: Sistem File (emptyDir Kubernetes)

Integrasi scheduler Kubernetes: Terintegrasi sepenuhnya secara default. Scheduler Kubernetes akan memastikan ruang di node sebelum penempatan dan menskalakan node jika diperlukan.

Untuk mempelajari cara menggunakan parameter API ini, lihat Menyediakan dan menggunakan penyimpanan efemeral yang didukung SSD Lokal.

Blok SSD NVMe Lokal gcloud container clusters create
--local-nvme-ssd-block
v1.25.3-gke.1800 atau yang lebih baru

Teknologi penyimpanan: NVMe

Data dibagikan ke seluruh pod: Ya, melalui PV Lokal.

Siklus proses data: Node

Ukuran dan kebutuhan akan konfigurasi RAID: Hingga 9 TiB. Anda perlu mengonfigurasi RAID secara manual untuk ukuran yang lebih besar.

Format: Blok mentah

Integrasi scheduler Kubernetes: Tidak, secara default. Anda perlu memastikan kapasitas di node dan menangani noisy neighbor. Jika Anda memilih untuk menggunakan PV lokal, penjadwalan akan terintegrasi.

Untuk mempelajari cara menggunakan parameter API ini, lihat Menyediakan dan menggunakan block storage mentah yang didukung SSD Lokal.

Dukungan untuk parameter SSD Lokal yang ada

Tabel berikut merangkum parameter SSD Lokal yang sudah ada dan pengganti yang direkomendasikan:

Parameter SSD Lokal yang sudah ada Perintah gcloud CLI Profil SSD Lokal Parameter SSD Lokal versi GA yang direkomendasikan
Parameter jumlah SSD Lokal gcloud container clusters create
--local-ssd-count

Teknologi penyimpanan: SCSI

Data dibagikan ke seluruh pod: Ya, melalui PV Lokal

Siklus proses data: Node

Ukuran dan kebutuhan akan konfigurasi RAID: 375 GiB. Anda perlu mengonfigurasi RAID secara manual untuk ukuran yang lebih besar.

Format: Sistem File (ext-4)

Integrasi scheduler Kubernetes: Tidak secara default. Anda perlu memastikan kapasitas di node dan menangani noisy neighbor. Jika Anda memilih untuk menggunakan PV lokal, penjadwalan akan terintegrasi.

gcloud container clusters create
--ephemeral-storage-local-ssd
Parameter Penyimpanan Ephemeral (beta) gcloud beta container clusters create
--ephemeral-storage

Teknologi penyimpanan: NVMe

Data dibagikan ke seluruh pod: Tidak

Siklus proses data: Pod

Ukuran dan kebutuhan akan konfigurasi RAID: Hingga 9 TiB. GKE akan otomatis mengonfigurasi RAID di balik layar.

Format: Sistem File (emptyDir Kubernetes)

Integrasi scheduler Kubernetes: Terintegrasi sepenuhnya secara default. Scheduler Kubernetes akan memastikan ruang di node sebelum penempatan dan menskalakan node jika diperlukan.

gcloud container clusters create
--ephemeral-storage-local-ssd
Parameter Volume SSD Lokal (alfa) gcloud alpha container clusters create
--local-ssd-volumes

Teknologi penyimpanan: NVMe atau SCSI

Data dibagikan ke seluruh pod: Tidak

Siklus proses data: Node

Ukuran dan kebutuhan akan konfigurasi RAID:

375 GiB. Anda perlu mengonfigurasi RAID secara manual untuk ukuran yang lebih besar.

Format: Sistem File (ext-4) atau blok mentah

Integrasi scheduler Kubernetes: Tidak secara default. Anda perlu memastikan kapasitas pada node dan menangani noisy neighbor.

gcloud container clusters create
--local-nvme-ssd-block

Akses SSD Lokal

Anda dapat mengakses volume SSD Lokal dengan salah satu metode berikut.

Volume emptyDir

Pada GKE versi v1.25.3-gke.1800 dan yang lebih baru, Anda dapat menggunakan penyimpanan efemeral sebagai volume emptyDir yang didukung oleh SSD Lokal, melalui opsi --ephemeral-storage-local-ssd. Kami merekomendasikan pendekatan ini untuk sebagian besar kasus, termasuk aplikasi yang memerlukan ruang awal efemeral berperforma tinggi.

GKE memungkinkan Anda mengonfigurasi node pool untuk memasang penyimpanan efemeral node di SSD Lokal dengan antarmuka NVMe.

Untuk mempelajari lebih lanjut, lihat contoh ini.

Volume persisten lokal

Volume persisten lokal menunjukkan disk lokal yang terpasang ke satu node. Volume persisten lokal memungkinkan Anda membagikan resource SSD Lokal ke seluruh Pod. Karena disk lokal merupakan disk SSD Lokal, data akan tetap bersifat efemeral.

Kami merekomendasikan pendekatan ini jika salah satu dari berikut ini dijalankan di cluster Anda:

  • Workload yang menggunakan StatefulSets dan volumeClaimTemplates.
  • Workload yang berbagi node pool. Setiap volume SSD Lokal dapat direservasi melalui PersistentVolumeClaim, dan HostPath tertentu tidak dienkode secara langsung dalam spesifikasi Pod.
  • Pod yang memerlukan gravitasi data ke SSD Lokal yang sama. Pod selalu dijadwalkan ke node yang sama dengan PersistentVolume lokalnya.

Untuk mempelajari lebih lanjut, lihat contoh ini dan dokumentasi Volume Kubernetes open source.

Pembatasan

  • Aplikasi Anda harus menangani hilangnya akses ke data di volume SSD Lokal dengan baik. Data yang ditulis ke disk SSD Lokal tidak akan bertahan saat Pod atau node dihapus, diperbaiki, diupgrade, atau mengalami error yang tidak dapat dipulihkan.

    Parameter SSD Lokal penyimpanan efemeral mengonfigurasi volume SSD Lokal agar memiliki siklus proses data berbasis Pod, sedangkan parameter blok SSD Lokal NVMe mengonfigurasi volume SSD Lokal agar memiliki siklus proses data berbasis Node.

    Jika Anda memerlukan penyimpanan persisten, sebaiknya gunakan opsi penyimpanan yang tahan lama (seperti Persistent Disk, Filestore, atau Cloud Storage). Anda juga dapat menggunakan replika regional untuk meminimalkan risiko kehilangan data selama siklus proses cluster atau operasi siklus proses aplikasi.

  • Setelan konfigurasi SSD Lokal tidak dapat diubah setelah node pool dibuat. Anda tidak dapat mengaktifkan, menonaktifkan, atau memperbarui konfigurasi SSD Lokal untuk node pool yang sudah ada. Anda harus menghapus node pool dan membuat ulang node pool baru untuk melakukan perubahan apa pun.

  • Pod yang menggunakan emptyDir secara transparan menggunakan SSD Lokal; tetapi, hal ini berlaku untuk semua Pod di semua node dalam node pool tersebut. Di node pool yang sama, GKE tidak mendukung keberadaan beberapa Pod yang menggunakan volume emptyDir SSD Lokal yang didukung oleh SSD Lokal dan Pod lain yang menggunakan volume emptyDir yang didukung oleh boot disk node. Jika Anda memiliki workload yang menggunakan volume emptyDir yang didukung oleh boot disk node, jadwalkan workload pada node pool yang berbeda.

  • Cluster Autopilot dan penyediaan otomatis node tidak didukung untuk SSD Lokal.

  • Sebaiknya gunakan SSD Lokal sebagai penyimpanan efemeral untuk beban kerja yang berjalan di VM yang dioptimalkan untuk penyimpanan (Z3). Node Z3 dihentikan selama peristiwa pemeliharaan. Oleh karena itu, data di SSD Lokal untuk node ini mungkin tidak tersedia selama peristiwa pemeliharaan, dan pemulihan data tidak terjamin setelah pemeliharaan.

Langkah selanjutnya