Halaman ini menjelaskan cara menyediakan penyimpanan SSD Lokal di cluster Google Kubernetes Engine (GKE), dan cara mengonfigurasi workload untuk menggunakan data dari penyimpanan efemeral yang didukung SSD Lokal yang dilampirkan ke node di cluster Anda.
Untuk mempelajari dukungan SSD Lokal lebih lanjut di GKE, lihat Tentang penyimpanan SSD Lokal.
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
.
Membuat cluster atau node pool dengan penyimpanan efemeral yang didukung SSD Lokal
Gunakan Google Cloud CLI untuk membuat cluster atau node pool dengan penyimpanan efemeral yang didukung SSD Lokal.
Gunakan opsi --ephemeral-storage-local-ssd
untuk menambahkan penyimpanan efemeral
lokal
terkelola sepenuhnya yang didukung oleh volume SSD Lokal. Penyimpanan ini terikat dengan siklus proses Pod Anda.
Saat Pod meminta penyimpanan efemeral, GKE
akan menjadwalkannya untuk berjalan di node yang memiliki volume SSD Lokal yang dikonfigurasi sebagai penyimpanan
efemeral. Jika Anda menginginkan kontrol yang lebih khusus atau terperinci atas SSD Lokal, sebaiknya gunakan block storage mentah yang didukung SSD Lokal.
Jika ada penskalaan otomatis cluster
yang aktif, GKE akan menskalakan otomatis node Anda saat cluster memerlukan lebih banyak
ruang penyimpanan efemeral. Pod dapat mengakses data terkait volume SSD Lokal melalui
volume emptyDir
.
Perintah gcloud CLI yang Anda jalankan untuk membuat cluster atau node pool bergantung pada generasi seri mesin dari jenis mesin yang dipilih. Misalnya, jenis mesin N1 dan N2 masing-masing termasuk dalam seri mesin generasi pertama dan kedua, sedangkan jenis mesin C3 termasuk dalam seri mesin generasi ketiga.
Membuat cluster dengan SSD Lokal
Generasi ke-1 atau ke-2
Jika Anda menggunakan jenis mesin dari seri mesin generasi pertama atau kedua,
buat cluster dengan menentukan opsi --ephemeral-storage-local-ssd count=NUMBER_OF_DISKS
. Opsi ini menyediakan jumlah volume SSD Lokal yang ditentukan
di setiap node untuk digunakan sebagai penyimpanan efemeral kubelet.
Setelan ini hanya berlaku untuk node pool default. Jika node pool berikutnya memerlukan SSD Lokal, tentukan opsi tersebut selama pembuatan node pool.
Untuk membuat cluster yang berjalan di GKE versi 1.25.3-gke.1800 atau yang lebih baru dan pool default-nya menggunakan volume SSD Lokal, jalankan perintah berikut:
gcloud container clusters create CLUSTER_NAME \
--ephemeral-storage-local-ssd count=NUMBER_OF_DISKS \
--machine-type=MACHINE_TYPE \
--release-channel CHANNEL_NAME
Ganti kode berikut:
CLUSTER_NAME
: nama cluster.NUMBER_OF_DISKS
: jumlah volume SSD Lokal yang akan disediakan di setiap node. Volume ini digabungkan menjadi satu volume logis selama penyiapan node. Jumlah maksimum volume bervariasi menurut jenis mesin dan region. Perlu diketahui bahwa beberapa kapasitas SSD Lokal dicadangkan untuk penggunaan sistem.MACHINE_TYPE
: jenis mesin yang akan digunakan. Kolom ini wajib diisi, karena SSD Lokal tidak dapat digunakan dengan jenise2-medium
default.CHANNEL_NAME
: saluran rilis yang menyertakan versi GKE yang lebih baru dari 1.25.3-gke.1800. Jika memilih untuk tidak menggunakan saluran rilis, Anda juga dapat menggunakan flag--cluster-version
sebagai ganti--release-channel
, yang menentukan versi valid yang lebih baru dari 1.25.3-gke.1800. Untuk menentukan versi yang valid, gunakan perintahgcloud container get-server-config
.
Generasi ke-3
Jika menggunakan jenis mesin dari seri mesin generasi ketiga, Anda tidak perlu menentukan opsi SSD Lokal apa pun saat membuat cluster. Jumlah disk yang ditambahkan ke setiap node bergantung pada jenis mesin.
Untuk membuat cluster, jalankan perintah berikut:
gcloud container clusters create CLUSTER_NAME \
--machine-type=MACHINE_TYPE \
--cluster-version CLUSTER_VERSION
Ganti kode berikut:
CLUSTER_NAME
: nama cluster.MACHINE_TYPE
: jenis mesin yang akan digunakan dari seri mesin generasi ketiga.CLUSTER_VERSION
: versi cluster GKE yang mendukung SSD Lokal pada jenis mesin dari seri mesin generasi ketiga.
Membuat node pool dengan SSD Lokal
Generasi ke-1 atau ke-2
Untuk membuat node pool yang berjalan di GKE versi 1.25.3-gke.1800 atau yang lebih baru dan menggunakan volume SSD Lokal, jalankan perintah berikut:
gcloud container node-pools create POOL_NAME \
--cluster=CLUSTER_NAME \
--ephemeral-storage-local-ssd count=NUMBER_OF_DISKS \
--machine-type=MACHINE_TYPE
Ganti kode berikut:
POOL_NAME
: nama node pool baru.CLUSTER_NAME
: nama cluster.NUMBER_OF_DISKS
: jumlah volume SSD Lokal yang akan disediakan di setiap node. Volume ini digabungkan menjadi satu volume logis selama penyiapan node. Jumlah maksimum volume bervariasi menurut jenis mesin dan region. Perlu diketahui bahwa beberapa kapasitas SSD Lokal dicadangkan untuk penggunaan sistem.MACHINE_TYPE
: jenis mesin yang akan digunakan. Kolom ini wajib diisi, karena SSD Lokal tidak dapat digunakan dengan jenise2-medium
default.
Generasi ke-3
Jika menggunakan jenis mesin dari seri mesin generasi ketiga, Anda tidak perlu menentukan opsi SSD Lokal apa pun saat membuat node pool. Jumlah volume yang ditambahkan ke setiap node bergantung pada jenis mesin.
Untuk membuat node pool, jalankan perintah berikut:
gcloud container node-pools create POOL_NAME \
--cluster=CLUSTER_NAME \
--machine-type=MACHINE_TYPE \
--node-version NODE_VERSION
Ganti kode berikut:
POOL_NAME
: nama node pool baru.CLUSTER_NAME
: nama cluster.MACHINE_TYPE
: jenis mesin yang akan digunakan dari seri mesin generasi ketiga.NODE_VERSION
: versi node pool GKE yang mendukung SSD Lokal pada jenis mesin dari seri mesin generasi ketiga.
Node di node pool dibuat dengan label
cloud.google.com/gke-ephemeral-storage-local-ssd=true
. Anda dapat memverifikasi label dengan menjalankan perintah berikut:
kubectl describe node NODE_NAME
Menggunakan penyimpanan efemeral yang didukung SSD Lokal dengan cluster Autopilot
Anda dapat menggunakan SSD Lokal di class komputasi Autopilot berikut:
Performance
Accelerator
Untuk class Performance
, ikuti petunjuk untuk menggunakan SSD Lokal di Pod class Performa.
Untuk class komputasi Accelerator
, Anda dapat menggunakan SSD Lokal untuk penyimpanan efemeral
jika menggunakan GPU L4 NVIDIA, dan menjalankan patch GKE versi
1.28.6-gke.1369000 dan yang lebih baru atau 1.29.1-gke.1575000 dan yang lebih baru. GPU NVIDIA H100 (80 GB)
dan GPU NVIDIA A100 (80 GB) selalu menggunakan SSD Lokal untuk penyimpanan sementara,
dan Anda tidak dapat menentukan pemilih node berikut untuk GPU tersebut.
Untuk menggunakan SSD Lokal untuk penyimpanan efemeral, tambahkan nodeSelector cloud.google.com/gke-ephemeral-storage-local-ssd: "true"
ke manifes workload Anda. Spesifikasi Pod Anda akan terlihat seperti contoh
berikut:
apiVersion: v1
kind: Pod
metadata:
name: l4-localssd-pod
spec:
containers:
- name: my-gpu-container
image: nvidia/cuda:11.0.3-runtime-ubuntu20.04
command: ["/bin/bash", "-c", "--"]
args: ["while true; do sleep 600; done;"]
resources:
requests:
cpu: 16
memory: 64Gi
ephemeral-storage: 800Gi
limits:
cpu: 16
memory: 64Gi
ephemeral-storage: 800Gi
nvidia.com/gpu: 8
nodeSelector:
cloud.google.com/gke-accelerator: nvidia-l4
cloud.google.com/gke-ephemeral-storage-local-ssd: "true"
Menggunakan parameter API lama
Opsi --local-ssd-count
adalah parameter API lama yang mendukung SSD Lokal SCSI.
Seri mesin generasi ketiga Compute Engine tidak mendukung SCSI
dan hanya mendukung NVMe. Anda hanya boleh menggunakan opsi dengan cluster Windows Server.
Jika saat ini Anda menggunakan parameter API lama di cluster Linux, sebaiknya
gunakan opsi --ephemeral-storage-local-ssd
.
SSD lokal di cluster Windows Server
Saat menggunakan SSD Lokal dengan cluster yang menjalankan node pool Windows Server, Anda harus login ke node tersebut dan memformat volumenya sebelum menggunakannya. Pada contoh berikut, volume SSD Lokal diformat dengan sistem file NTFS. Anda juga dapat membuat direktori di volume. Dalam contoh ini, direktorinya ada di dalam disk D.
PS C:\> Get-Disk | Where partitionstyle -eq 'raw' | Initialize-Disk -PartitionStyle MBR -PassThru | New-Partition -AssignDriveLetter -UseMaximumSize | Format-Volume -FileSystem ntfs -Confirm:$false
PS C:\> mkdir D:\test-ssd
Mengakses volume SSD Lokal
Contoh berikut menunjukkan cara mengakses penyimpanan efemeral yang didukung SSD Lokal.
Penyimpanan efemeral sebagai volume emptyDir
Node pool GKE dapat dikonfigurasi agar menggunakan SSD Lokal untuk
penyimpanan efemeral, termasuk volume emptyDir
.
Manifes Pod berikut menggunakan emptyDir
dan pemilih
node cloud.google.com/gke-ephemeral-storage-local-ssd
. Anda dapat menerapkan
teknik yang serupa untuk manifes Deployment atau manifes StatefulSet.
Saat memilih permintaan resource penyimpanan efemeral, pertimbangkan kapasitas SSD Lokal yang dicadangkan untuk penggunaan sistem.
apiVersion: v1
kind: Pod
metadata:
name: POD_NAME
spec:
containers:
- name: CONTAINER_NAME
image: "registry.k8s.io/pause"
resources:
requests:
ephemeral-storage: "200Gi"
volumeMounts:
- mountPath: /cache
name: scratch-volume
nodeSelector:
cloud.google.com/gke-ephemeral-storage-local-ssd: "true"
volumes:
- name: scratch-volume
emptyDir: {}
Pemecahan masalah
Untuk mengetahui petunjuk pemecahan masalah, lihat Memecahkan masalah penyimpanan di GKE.