Panduan ini menjelaskan cara menghubungkan ke instance Parallelstore yang ada dengan driver CSI Parallelstore GKE dengan penyediaan statis. Dengan begitu, Anda dapat mengakses instance Parallelstore terkelola sepenuhnya yang ada sebagai volume untuk workload stateful Anda, dengan cara yang terkontrol dan dapat diprediksi.
Sebelum memulai
Sebelum memulai, pastikan Anda telah melakukan tugas berikut:
- Mengaktifkan Parallelstore API dan Google Kubernetes Engine API. Mengaktifkan 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 perintah
gcloud components update. Versi gcloud CLI yang lebih lama mungkin tidak mendukung perintah yang dijalankan dalam dokumen ini.
- Lihat ringkasan driver CSI untuk mengetahui batasan dan persyaratan.
- Buat instance Parallelstore jika Anda belum melakukannya.
- Konfigurasi jaringan VPC.
- Jika Anda ingin menggunakan cluster GKE Standard, pastikan untuk mengaktifkan driver CSI.
Mengakses instance Parallelstore yang ada menggunakan driver CSI Parallelstore
Jika Anda telah menyediakan instance Parallelstore dalam jaringan yang sama dengan cluster GKE Anda, Anda dapat mengikuti petunjuk ini untuk menyediakan PersistentVolume secara statis yang merujuk ke instance Anda.
Bagian berikut menjelaskan proses umum untuk mengakses instance Parallelstore yang ada menggunakan driver CSI Parallelstore:
- Buat PersistentVolume yang merujuk ke instance Parallelstore..
- Gunakan PersistentVolumeClaim untuk mengakses volume.
- (Opsional) Konfigurasi resource untuk container sidecar.
- Buat workload yang menggunakan volume.
Membuat PersistentVolume
Bagian ini menunjukkan contoh cara membuat PersistentVolume yang mereferensikan instance Parallelstore yang ada.
Jalankan perintah berikut untuk menemukan instance Parallelstore Anda.
gcloud beta parallelstore instances list \ --project=PROJECT_ID \ --location=LOCATIONGanti kode berikut:
- PROJECT_ID: Project ID Cloud de Confiance by S3NS
- LOCATION: zona Compute Engine yang berisi cluster. Anda harus menentukan zona yang didukung untuk driver CSI Parallelstore.
Output-nya akan terlihat seperti berikut. Pastikan untuk mencatat Nama instance Parallelstore dan Titik akses IP, sebelum Anda melanjutkan ke langkah berikutnya.
NAME capacity DESCRIPTION CREATE_TIME UPDATE_TIME STATE network RESERVED_IP_RANGE ACCESS_POINTS projects/my-project/locations/us-central1-a/instances/pvc-eff1ed02-a8ed-48d2-9902-bd70a2d60563 12000 2024-03-06T19:18:26.036463730Z 2024-03-06T19:24:44.561441556Z ACTIVE 10.51.110.2,10.51.110.4,10.51.110.3Simpan manifes berikut dalam file bernama
parallelstore-pv.yaml:Pemasangan Pod
apiVersion: v1 kind: PersistentVolume metadata: name: parallelstore-pv spec: storageClassName: "STORAGECLASS_NAME" capacity: storage: STORAGE_SIZE accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain volumeMode: Filesystem csi: driver: parallelstore.csi.storage.gke.io volumeHandle: "PROJECT_ID/LOCATION/INSTANCE_NAME/default-pool/default-container" volumeAttributes: accessPoints: ACCESS_POINTS network: NETWORK_NAME claimRef: name: parallelstore-pvc namespace: defaultGanti kode berikut:
- PROJECT_ID: Project ID Cloud de Confiance by S3NS
- LOCATION: lokasi zona instance Parallelstore Anda. Anda harus menentukan zona yang didukung untuk driver CSI Parallelstore.
- INSTANCE_NAME: nama instance Parallelstore Anda. Contoh nilai
volumeHandleyang valid adalah"my-project/us-central1-a/pvc-eff1ed02-a8ed-48d2-9902-bd70a2d60563/default-pool/default-container". - ACCESS_POINTS: titik akses instance Parallelstore Anda; misalnya,
10.51.110.2,10.51.110.4,10.51.110.3. - NETWORK_NAME: jaringan VPC tempat instance Parallelstore Anda dapat diakses.
- STORAGECLASS_NAME: nama StorageClass Anda. Nilainya dapat berupa string kosong, tetapi harus cocok dengan spesifikasi di PersistentVolumeClaim Anda.
- STORAGE_SIZE: ukuran penyimpanan; misalnya,
12000Gi.
Untuk mengetahui daftar lengkap kolom yang didukung dalam objek PersistentVolume, lihat ke dokumentasi referensi CSI Parallelstore.
Pemasangan node
Driver CSI Parallelstore memungkinkan Anda memasang volume langsung di node Anda. Pemasangan node didukung di cluster GKE versi 1.32.3 dan yang lebih baru.
Pemasangan tingkat node memungkinkan semua Pod di node berbagi titik pemasangan yang sama. Berbagi titik pemasangan meningkatkan skalabilitas karena jumlah pemasangan meningkat seiring dengan jumlah node, bukan jumlah Pod (seperti pada mode sidecar).
Hasilnya, Anda dapat menjalankan lebih banyak Pod sambil berbagi instance Parallelstore yang sama.
Catatan: Fitur ini diaktifkan dengan menentukan atribut volume mountLocality: node. Nilai default untuk lokalitas pemasangan Pod adalah mountLocality: pod. Flag permintaan dan batas CPU dfuse hanya berfungsi dengan setelan mountLocality: node.
Jika nilai permintaan atau batas ditetapkan dan yang lainnya tidak ditetapkan, keduanya akan ditetapkan ke nilai yang sama dan ditentukan.
Anda dapat menggunakan `'0'` sebagai nilai untuk menghapus setelan batas resource apa pun. Misalnya, dfuseMemoryLimit: '0' menghapus batas memori untuk proses dfuse.apiVersion: v1 kind: PersistentVolume metadata: name: parallelstore-pv spec: storageClassName: "STORAGECLASS_NAME" capacity: storage: STORAGE_SIZE accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain volumeMode: Filesystem csi: driver: parallelstore.csi.storage.gke.io volumeHandle: "PROJECT_ID/LOCATION/INSTANCE_NAME/default-pool/default-container" volumeAttributes: accessPoints: ACCESS_POINTS network: NETWORK_NAME mountLocality: node dfuseCPURequest: DFUSE_CPU_REQUEST dfuseMemoryRequest: DFUSE_MEMORY_REQUEST dfuseCPULimit: DFUSE_CPU_LIMIT dfuseMemoryLimit: DFUSE_MEMORY_LIMIT claimRef: name: parallelstore-pvc namespace: defaultGanti kode berikut:
- PROJECT_ID: Project ID Cloud de Confiance by S3NS
- LOCATION: lokasi zona instance Parallelstore Anda. Anda harus menentukan zona yang didukung untuk driver CSI Parallelstore.
- INSTANCE_NAME: nama instance Parallelstore Anda. Contoh nilai
volumeHandleyang valid adalah"my-project/us-central1-a/pvc-eff1ed02-a8ed-48d2-9902-bd70a2d60563/default-pool/default-container". - ACCESS_POINTS: titik akses instance Parallelstore Anda; misalnya,
10.51.110.2,10.51.110.4,10.51.110.3. - NETWORK_NAME: jaringan VPC tempat instance Parallelstore Anda dapat diakses.
- STORAGECLASS_NAME: nama StorageClass Anda. Nilainya dapat berupa string kosong, tetapi harus cocok dengan spesifikasi di PersistentVolumeClaim Anda.
- STORAGE_SIZE: ukuran penyimpanan; misalnya,
12000Gi. - DFUSE_CPU_REQUEST: permintaan CPU untuk proses dfuse. Default-nya adalah
250m. - DFUSE_MEMORY_REQUEST: permintaan memori untuk proses dfuse. Default-nya adalah
512Mi. - DFUSE_CPU_LIMIT: batas CPU untuk proses dfuse. Default-nya tidak ditetapkan.
- DFUSE_MEMORY_LIMIT: batas memori untuk proses dfuse. Default-nya adalah
10Gi.
Untuk mengetahui daftar lengkap kolom yang didukung dalam objek PersistentVolume, lihat ke dokumentasi referensi CSI Parallelstore.
Buat PersistentVolume dengan menjalankan perintah ini:
kubectl apply -f parallelstore-pv.yaml
(Opsional) Pasang instance Parallelstore yang sama dengan opsi pemasangan yang berbeda
Anda dapat memasang instance Parallelstore yang sama dengan opsi pemasangan yang berbeda. Misalnya, Anda dapat memasang instance Parallelstore yang sama dengan caching diaktifkan dan dengan caching dinonaktifkan di Pod yang sama.
Untuk memasang instance Parallelstore yang sama dengan opsi pemasangan yang berbeda, Anda harus membuat PersistentVolume untuk setiap opsi pemasangan. Gunakan sintaksis berikut untuk kolom volumeHandle dalam objek PersistentVolume: "PROJECT_ID/LOCATION/INSTANCE_NAME/default-pool/default-container:RANDOM_SUFFIX", dengan RANDOM_SUFFIX adalah string acak pilihan Anda.
Contoh: "my-project/us-central1-a/pvc-eff1ed02-a8ed-48d2-9902-bd70a2d60563/default-pool/default-container:xyz123"
Menggunakan PersistentVolumeClaim untuk mengakses volume
Anda dapat membuat PersistentVolumeClaim PersistentVolumeClaim yang mereferensikan StorageClass driver CSI Parallelstore.
File manifes berikut menunjukkan contoh cara membuat
PersistentVolumeClaim dalam ReadWriteMany
mode akses
yang mereferensikan StorageClass yang Anda buat sebelumnya.
Simpan manifes berikut dalam file bernama
parallelstore-pvc.yaml:kind: PersistentVolumeClaim apiVersion: v1 metadata: name: parallelstore-pvc namespace: default spec: accessModes: - ReadWriteMany storageClassName: STORAGECLASS_NAME resources: requests: storage: STORAGE_SIZEGanti kode berikut:
- STORAGECLASS_NAME: nama StorageClass Anda. Nilai ini harus cocok dengan spesifikasi di PersistentVolume Anda.
- STORAGE_SIZE: Ukuran penyimpanan; misalnya,
12000Gi. Nilai ini harus cocok dengan spesifikasi di PersistentVolume Anda.
Buat PersistentVolumeClaim dengan menjalankan perintah ini:
kubectl create -f parallelstore-pvc.yaml
(Opsional) Konfigurasi resource untuk container sidecar
Saat Anda membuat Pod workload yang menggunakan volume yang didukung Parallelstore, driver CSI akan menentukan apakah volume Anda didasarkan pada instance Parallelstore.
Jika driver mendeteksi bahwa volume Anda berbasis Parallelstore, atau jika Anda
menentukan anotasi gke-parallelstore/volumes: "true", driver CSI
otomatis memasukkan container sidecar bernama gke-parallelstore-sidecar ke dalam
Pod Anda. Container sidecar ini memasang instance Parallelstore ke workload Anda.
Secara default, container sidecar dikonfigurasi dengan permintaan resource berikut, dengan batas resource tidak ditetapkan:
- CPU 250 m
- Memori 512 MiB
- Penyimpanan efemeral 10 MiB
Untuk menimpa nilai ini, Anda dapat menentukan anotasi gke-parallelstore/[cpu-request|memory-request|cpu-limit|memory-limit|ephemeral-storage-request] seperti yang ditunjukkan dalam contoh berikut:
apiVersion: v1
kind: Pod
metadata:
annotations:
gke-parallelstore/volumes: "true"
gke-parallelstore/cpu-request: 500m
gke-parallelstore/memory-request: 1Gi
gke-parallelstore/ephemeral-storage-request: 500Mi
gke-parallelstore/cpu-limit: 1000m
gke-parallelstore/memory-limit: 2Gi
gke-parallelstore/ephemeral-storage-limit: 1Gi
Gunakan pertimbangan berikut saat menentukan jumlah resource yang akan dialokasikan:
- Jika salah satu nilai permintaan atau batas ditetapkan dan yang lainnya tidak ditetapkan, GKE akan menetapkan keduanya ke nilai yang sama dan ditentukan.
- Alokasikan lebih banyak CPU ke container sidecar jika workload Anda memerlukan throughput lebih tinggi. CPU yang tidak mencukupi akan menyebabkan pembatasan I/O.
- Anda dapat menggunakan
"0"sebagai nilai untuk menghapus setelan batas resource apa pun di cluster Standard; misalnya,gke-parallelstore/memory-limit: "0"menghapus batas memori untuk container sidecar. Hal ini berguna jika Anda tidak dapat menentukan jumlah resource yang dibutuhkangke-parallelstore-sidecaruntuk workload Anda, dan ingin mengizinkan sidecar menggunakan semua resource yang tersedia di node.
Membuat workload yang menggunakan volume
Bagian ini menunjukkan contoh cara membuat Pod yang menggunakan resource PersistentVolumeClaim yang Anda buat sebelumnya.
Beberapa Pod dapat berbagi resource PersistentVolumeClaim yang sama.
Simpan manifes berikut dalam file bernama
my-pod.yaml.apiVersion: v1 kind: Pod metadata: name: my-pod spec: containers: - name: nginx image: nginx volumeMounts: - name: parallelstore-volume mountPath: /data volumes: - name: parallelstore-volume persistentVolumeClaim: claimName: parallelstore-pvcJalankan perintah berikut untuk menerapkan manifes ke cluster:
kubectl apply -f my-pod.yamlPod menunggu hingga GKE menyediakan PersistentVolumeClaim sebelum mulai berjalan. Operasi ini mungkin memerlukan waktu beberapa menit untuk selesai.
Mengelola driver CSI Parallelstore
Bagian ini membahas cara mengaktifkan dan menonaktifkan driver CSI Parallelstore, jika diperlukan.
Mengaktifkan driver CSI Parallelstore pada cluster baru
Untuk mengaktifkan driver CSI Parallelstore saat membuat cluster Standard baru, jalankan perintah berikut dengan Google Cloud CLI:
gcloud container clusters create CLUSTER_NAME \
--location=LOCATION \
--network=NETWORK_NAME \
--addons=ParallelstoreCsiDriver \
--cluster-version=VERSION
Ganti kode berikut:
- CLUSTER_NAME: nama cluster Anda.
- LOCATION: zona Compute Engine yang berisi cluster. Anda harus menentukan zona yang didukung untuk driver CSI Parallelstore.
- NETWORK_NAME: nama jaringan VPC yang Anda buat di Mengonfigurasi jaringan VPC.
- VERSION: nomor versi GKE.
Anda harus menentukan nomor versi yang didukung untuk menggunakan fitur ini, seperti GKE versi 1.29 atau yang lebih baru. Atau, Anda dapat
menggunakan flag
--release-channeldan menentukan saluran rilis.
Mengaktifkan driver CSI Parallelstore pada cluster yang ada
Untuk mengaktifkan driver di cluster GKE Standard yang ada, jalankan perintah berikut dengan Google Cloud CLI:
gcloud container clusters update CLUSTER_NAME \
--location=LOCATION \
--update-addons=ParallelstoreCsiDriver=ENABLED
Ganti kode berikut:
- CLUSTER_NAME : nama cluster Anda.
- LOCATION: zona Compute Engine yang berisi cluster. Anda harus menentukan zona yang didukung untuk driver CSI Parallelstore.
Pastikan cluster GKE Anda berjalan di jaringan VPC yang sama
dengan yang Anda siapkan di Mengonfigurasi jaringan VPC. Untuk memverifikasi
jaringan VPC untuk cluster GKE, Anda dapat memeriksa di
Cloud de Confiance konsol, atau melalui perintah gcloud container clusters describe $(CLUSTER) --format="value(networkConfig.network)" --location=$(LOCATION).
Menonaktifkan driver CSI Parallelstore
Anda dapat menonaktifkan driver CSI Parallelstore pada cluster Autopilot atau Standar yang ada menggunakan Google Cloud CLI.
gcloud container clusters update CLUSTER_NAME \
--location=LOCATION \
--update-addons=ParallelstoreCsiDriver=DISABLED
Ganti kode berikut:
- CLUSTER_NAME : nama cluster Anda.
- LOCATION: zona Compute Engine yang berisi cluster. Anda harus menentukan zona yang didukung untuk driver CSI Parallelstore.
Menggunakan fsGroup dengan volume Parallelstore
Driver CSI Parallelstore mendukung perubahan kepemilikan grup direktori tingkat root sistem file yang terpasang agar cocok dengan fsGroup yang diminta pengguna yang ditentukan dalam SecurityContext Pod. Fitur ini hanya didukung di cluster GKE versi 1.29.5 atau yang lebih baru, atau versi 1.30.1 atau yang lebih baru.
Pemecahan masalah
Untuk panduan pemecahan masalah, lihat halaman Pemecahan masalah dalam dokumentasi Parallelstore.
Langkah berikutnya
- Pelajari dokumentasi referensi CSI Parallelstore.
- Pelajari cara menggunakan library intersepsi Parallelstore untuk meningkatkan performa workload.
- Pelajari cara mentransfer data ke Parallelstore dari Cloud Storage.
- Pelajari cara menggunakan Volume Populator GKE untuk mengotomatiskan transfer data dari penyimpanan sumber bucket Cloud Storage ke PersistentVolumeClaim tujuan yang didukung oleh instance Parallelstore.
- Coba tutorial untuk melatih model TensorFlow dengan Keras di GKE.