Membuat dan menggunakan volume yang didukung oleh instance Parallelstore di Google Kubernetes Engine


Parallelstore hanya tersedia berdasarkan undangan. Jika Anda ingin meminta akses ke Parallelstore di project Google Cloud, hubungi Sales Rep Anda.

Panduan ini menjelaskan cara membuat volume Kubernetes baru yang didukung oleh driver CSI Parallelstore di GKE dengan penyediaan dinamis. Dengan demikian, Anda dapat membuat penyimpanan yang didukung oleh instance Parallelstore terkelola sepenuhnya secara on-demand, dan mengaksesnya sebagai volume untuk workload stateful Anda.

Sebelum memulai

Sebelum memulai, pastikan Anda telah menjalankan tugas berikut:

  • Aktifkan Parallelstore API dan Google Kubernetes Engine API.
  • Aktifkan 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 volume baru menggunakan driver CSI Parallelstore

Bagian berikut menjelaskan proses umum untuk membuat volume Kubernetes yang didukung oleh driver CSI Parallelstore di GKE:

  1. (Opsional) Buat StorageClass.
  2. Gunakan PersistentVolumeClaim untuk mengakses volume.
  3. (Opsional) Konfigurasi resource untuk penampung sidecar.
  4. Buat beban kerja yang menggunakan volume.

(Opsional) Membuat class penyimpanan

Saat driver CSI Parallelstore diaktifkan, GKE akan otomatis membuat StorageClass bernama parallelstore-rwx untuk menyediakan instance Parallelstore. StorageClass ini mengarahkan driver CSI untuk menyediakan instance Parallelstore di region yang sama dengan cluster GKE Anda untuk memastikan performa I/O yang optimal.

Secara opsional, Anda dapat membuat StorageClass kustom dengan topologi tertentu. Untuk melakukannya, ikuti langkah-langkah berikut:

  1. Simpan manifes StorageClass berikut dalam file bernama parallelstore-class.yaml:

      apiVersion: storage.k8s.io/v1
      kind: StorageClass
      metadata:
        name: parallelstore-class
      provisioner: parallelstore.csi.storage.gke.io
      volumeBindingMode: Immediate
      reclaimPolicy: Delete
      allowedTopologies:
      - matchLabelExpressions:
        - key: topology.gke.io/zone
          values:
            LOCATION
    

    Ganti kode berikut:

    • LOCATION: zona Compute Engine yang berisi cluster. Anda harus menentukan zona yang didukung untuk driver CSI Parallelstore.

    Untuk mengetahui daftar lengkap kolom yang didukung di StorageClass, lihat dokumentasi referensi Parallelstore CSI.

  2. Buat StorageClass dengan menjalankan perintah ini:

    kubectl create -f parallelstore-class.yaml
    

Menggunakan PersistentVolumeClaim untuk mengakses volume

Anda dapat membuat resource PersistentVolumeClaim yang mereferensikan StorageClass driver CSI Parallelstore.

File manifes berikut menunjukkan contoh cara membuat PersistentVolumeClaim dalam mode akses ReadWriteMany yang mereferensikan StorageClass yang Anda buat sebelumnya.

  1. Simpan manifes berikut dalam file bernama parallelstore-pvc.yaml:

      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        name: parallelstore-pvc
      spec:
        accessModes:
        - ReadWriteMany
        resources:
          requests:
            storage: STORAGE_SIZE
        storageClassName: parallelstore-class
    

    Ganti STORAGE_SIZE dengan ukuran penyimpanan; misalnya, 12000Gi. Nilai harus dalam rentang dari 12.000 GiB hingga 100.000 GiB (dalam kelipatan 4.000 GiB).

  2. Buat PersistentVolumeClaim dengan menjalankan perintah ini:

      kubectl create -f parallelstore-pvc.yaml
    

(Opsional) Mengonfigurasi resource untuk penampung 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 akan otomatis memasukkan penampung sidecar bernama gke-parallelstore-sidecar ke dalam Pod Anda. Penampung sidecar ini memasang instance Parallelstore ke workload Anda.

Secara default, GKE mengonfigurasi penampung sidecar 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 nilai lainnya tidak ditetapkan, keduanya akan ditetapkan ke nilai yang sama dan ditentukan.
  • Alokasikan lebih banyak CPU ke penampung sidecar jika workload Anda memerlukan throughput yang lebih tinggi. CPU yang tidak memadai akan menyebabkan throttling I/O.
  • Anda dapat menggunakan nilai "0" untuk menghapus batas resource apa pun di cluster Standar; misalnya, gke-parallelstore/memory-limit: "0"menghapus batas memori untuk penampung sidecar. Hal ini berguna jika Anda tidak dapat menentukan jumlah resource yang diperlukan gke-parallelstore-sidecar untuk beban kerja Anda, dan ingin membiarkan 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.

  1. 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-pvc
    
  2. Jalankan perintah berikut untuk menerapkan manifes ke cluster.

      kubectl apply -f my-pod.yaml
    

    Pod akan menunggu hingga PersistentVolumeClaim disediakan sebelum mulai berjalan. Penyelesaian operasi ini mungkin memerlukan waktu beberapa menit.

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 Standar 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-channel dan 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 memeriksanya di konsol Google Cloud, 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 dipasang 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 selanjutnya