Menghubungkan ke instance Parallelstore yang ada dari Google Kubernetes Engine

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

Panduan ini menjelaskan cara terhubung ke instance Parallelstore yang ada dengan driver CSI Parallelstore GKE menggunakan penyediaan statis. Dengan begitu, Anda dapat mengakses instance Parallelstore yang dikelola sepenuhnya yang ada sebagai volume untuk workload stateful Anda, dengan cara yang terkontrol dan dapat diprediksi.

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.

Mengakses instance Parallelstore yang ada menggunakan driver CSI Parallelstore

Jika telah menyediakan instance Parallelstore dalam jaringan yang sama dengan cluster GKE, 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:

  1. Buat PersistentVolume yang merujuk ke instance Parallelstore..
  2. Menggunakan PersistentVolumeClaim untuk mengakses volume.
  3. (Opsional) Konfigurasi resource untuk container sidecar.
  4. Buat workload yang menggunakan volume.

Membuat PersistentVolume

Bagian ini menunjukkan contoh cara membuat PersistentVolume yang mereferensikan instance Parallelstore yang ada.

  1. Jalankan perintah berikut untuk menemukan instance Parallelstore Anda.

    gcloud beta parallelstore instances list \
        --project=PROJECT_ID \
        --location=LOCATION
    

    Ganti kode berikut:

    • PROJECT_ID: Google Cloud project ID.
    • 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.3
    
  2. Simpan manifes berikut dalam file bernama parallelstore-pv.yaml:

    Dudukan 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: default
    

    Ganti kode berikut:

    • PROJECT_ID: Google Cloud project ID.
    • LOCATION: lokasi zonal instance Parallelstore Anda. Anda harus menentukan zona yang didukung untuk driver CSI Parallelstore.
    • INSTANCE_NAME: nama instance Parallelstore Anda. Contoh nilai volumeHandle yang 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. 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 dokumentasi referensi Parallelstore CSI.

    Dudukan node

    Driver CSI Parallelstore memungkinkan Anda memasang volume langsung di node. 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. Permintaan CPU, memori, dan tanda batas dfuse hanya berfungsi dengan setelan mountLocality: node.

    Jika nilai permintaan atau batas ditetapkan dan nilai lainnya tidak ditetapkan, keduanya akan ditetapkan ke nilai yang sama dan telah ditentukan.

    Anda dapat menggunakan `'0'` sebagai nilai untuk membatalkan setelan batas resource. 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: default
    

    Ganti kode berikut:

    • PROJECT_ID: Google Cloud project ID.
    • LOCATION: lokasi zonal instance Parallelstore Anda. Anda harus menentukan zona yang didukung untuk driver CSI Parallelstore.
    • INSTANCE_NAME: nama instance Parallelstore Anda. Contoh nilai volumeHandle yang 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. 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. Defaultnya adalah 250m.
    • DFUSE_MEMORY_REQUEST: permintaan memori untuk proses dfuse. Defaultnya adalah 512Mi.
    • DFUSE_CPU_LIMIT: batas CPU untuk proses dfuse. Defaultnya tidak ditetapkan.
    • DFUSE_MEMORY_LIMIT: batas memori untuk proses dfuse. Defaultnya adalah 10Gi.

    Untuk mengetahui daftar lengkap kolom yang didukung dalam objek PersistentVolume, lihat dokumentasi referensi Parallelstore CSI.

  3. Buat PersistentVolume dengan menjalankan perintah ini:

    kubectl apply -f parallelstore-pv.yaml
    

(Opsional) Pasang instance Parallelstore yang sama dengan opsi pemasangan yang berbeda

Catatan: Fitur ini tidak didukung dengan pemasangan node.

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 di 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 resource 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.

  1. 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_SIZE
    

    Ganti 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.
  2. Buat PersistentVolumeClaim dengan menjalankan perintah ini:

      kubectl create -f parallelstore-pvc.yaml
    

(Opsional) Mengonfigurasi resource untuk container sidecar

Catatan: Anda hanya dapat mengonfigurasi resource untuk container sidecar jika Anda menggunakan lokalitas pemasangan Pod, yaitu atribut volume mountLocality di PersistentVolume Anda tidak ditetapkan atau ditetapkan ke pod

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 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 yang lebih tinggi. CPU yang tidak memadai akan menyebabkan throttling I/O.
  • Anda dapat menggunakan "0" sebagai nilai untuk membatalkan setelan batas resource pada cluster Standar; misalnya, gke-parallelstore/memory-limit: "0" menghapus batas memori untuk container sidecar. Hal ini berguna saat Anda tidak dapat memutuskan jumlah resource yang dibutuhkan 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 menunggu hingga GKE menyediakan PersistentVolumeClaim 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 di 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-channel dan menentukan saluran rilis.

Mengaktifkan driver CSI Parallelstore pada cluster yang ada

Untuk mengaktifkan driver di cluster GKE Standard yang sudah 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 konsolGoogle 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 Standard 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 di-mount 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 di dokumentasi Parallelstore.

Langkah berikutnya