Accedi alle istanze Parallelstore esistenti utilizzando il driver CSI GKE Parallelstore


Parallelstore è disponibile solo su invito. Se vuoi richiedere l'accesso a Parallelstore nel tuo progetto Google Cloud, contatta il tuo rappresentante di vendita.

Questa guida descrive come connetterti a un'istanza Parallelstore esistente con il driver CSI GKE Parallelstore con provisioning statico. In questo modo puoi accedere istanze Parallelstore completamente gestite esistenti come volumi per i carichi di lavoro stateful, in modo controllato e prevedibile.

Prima di iniziare

Prima di iniziare, assicurati di aver eseguito le seguenti attività:

  • Attiva l'API Google Kubernetes Engine.
  • Abilita l'API Google Kubernetes Engine
  • Se vuoi utilizzare Google Cloud CLI per questa attività, installa e poi inizializza gcloud CLI. Se hai già installato gcloud CLI, ottieni la versione più recente eseguendo gcloud components update.

Accedere a un'istanza Parallelstore esistente utilizzando il driver CSI Parallelstore

Se hai già eseguito il provisioning di un'istanza Parallelstore all'interno della stessa rete come cluster GKE, puoi seguire queste istruzioni per il provisioning statico di un PersistentVolume che fa riferimento alla tua istanza.

Le seguenti sezioni descrivono la procedura tipica per accedere a un modello Istanza Parallelstore utilizzando il driver CSI Parallelstore:

  1. Crea un PersistentVolume che faccia riferimento all'istanza Parallelstore..
  2. Utilizza un oggetto PersistentVolumeClaim per accedere al volume.
  3. (Facoltativo) Configura le risorse per il contenitore sidecar.
  4. Crea un carico di lavoro che consumi il volume.

Crea un PersistentVolume

Questa sezione mostra un esempio di come creare un PersistentVolume fa riferimento a un'istanza Parallelstore esistente.

  1. Esegui il seguente comando per individuare l'istanza Parallelstore.

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

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto Google Cloud.
    • LOCATION: la zona Compute Engine contenente il cluster. Devi specificare una zona supportata per il driver CSI di Parallelstore.

    L'output dovrebbe essere simile al seguente. Prima di procedere al passaggio successivo, assicurati di annotare il nome dell'istanza Parallelstore e i punti di accesso IP.

    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. Salva il seguente manifest in un file denominato parallelstore-pv.yaml:

    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
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto Google Cloud
    • LOCATION: la località a livello di zona del tuo Parallelstore in esecuzione in un'istanza Compute Engine. Devi specificare una zona supportata per il driver CSI Parallelstore.
    • INSTANCE_NAME: il nome dell'istanza Parallelstore. Un esempio di valore volumeHandle valido è "my-project/us-central1-a/pvc-eff1ed02-a8ed-48d2-9902-bd70a2d60563/default-pool/default-container".
    • ACCESS_POINTS: i punti di accesso del tuo Istanza Parallelstore; ad esempio 10.51.110.2,10.51.110.4,10.51.110.3.
    • NETWORK_NAME: la rete VPC in cui È possibile accedere all'istanza Parallelstore.
    • STORAGECLASS_NAME: il nome del tuo StorageClass. Può essere una stringa vuota, ma deve corrispondere alla specifica in PersistentVolumeClaim.
    • STORAGE_SIZE: le dimensioni dello spazio di archiviazione; ad esempio 12000Gi.

    Per l'elenco completo dei campi supportati nell'oggetto PersistentVolume, consulta alla documentazione di riferimento di Parallelstore CSI.

  3. Crea il PersistentVolume eseguendo questo comando:

    kubectl apply -f parallelstore-pv.yaml
    

Usa un oggetto PersistentVolumeClaim per accedere al volume

Puoi creare un PersistentVolumeClaim risorsa che fa riferimento a StorageClass del driver CSI Parallelstore.

Il seguente file manifest mostra un esempio di come creare un PersistentVolumeClaim in ReadWriteMany modalità di accesso che fa riferimento al valore di StorageClass creato in precedenza.

  1. Salva il seguente manifest in un file denominato parallelstore-pvc.yaml:

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

    Sostituisci quanto segue:

    • STORAGECLASS_NAME: il nome del tuo StorageClass. Deve corrispondere alla specifica nel PersistentVolume.
    • STORAGE_SIZE: dimensioni dello spazio di archiviazione; ad esempio, 12000Gi. Deve corrispondere alla specifica nel PersistentVolume.
  2. Crea l'oggetto PersistentVolumeClaim eseguendo questo comando:

      kubectl create -f parallelstore-pvc.yaml
    

(Facoltativo) Configura le risorse per il contenitore sidecar

Quando crei un pod di carico di lavoro che utilizza volumi basati su Parallelstore, il driver CSI determina se il volume si basa su istanze Parallelstore.

Se il driver rileva che il volume è basato su Parallelstore o se specifica l'annotazione gke-parallelstore/volumes: "true", il driver CSI inserisce automaticamente un container collaterale denominato gke-parallelstore-sidecar all'interno del pod. Questo container collaterale monta l'istanza Parallelstore carico di lavoro.

Per impostazione predefinita, il container collaterale è configurato con la risorsa seguente richieste, con limiti di risorse non impostati:

  • 250 m CPU
  • 512 MiB di memoria
  • Archiviazione temporanea 10 MiB

Per sovrascrivere questi valori, puoi specificare l'annotazione gke-parallelstore/[cpu-request|memory-request|cpu-limit|memory-limit|ephemeral-storage-request] come mostrato nell'esempio seguente:

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

Tieni presenti le seguenti considerazioni quando decidi la quantità di risorse da allocare:

  • Se una delle richieste o dei valori limite è impostato e un altro non è impostato, GKE li imposta sullo stesso valore specificato.
  • Se i tuoi carichi di lavoro richiedono un throughput più elevato, alloca più CPU al contenitore sidecar. Una CPU insufficiente causerà il throttling I/O.
  • Puoi utilizzare il valore "0" per annullare l'impostazione di eventuali limiti di risorse sui cluster standard. Ad esempio, gke-parallelstore/memory-limit: "0" rimuove il limite di memoria per il contenitore sidecar. Questa opzione è utile quando non puoi decidere sulla quantità di risorse di cui gke-parallelstore-sidecar ha bisogno per i tuoi carichi di lavoro e vuoi consentire al sidecar di consumare tutte le risorse disponibili su un nodo.

Crea un carico di lavoro che utilizza il volume

Questa sezione mostra un esempio di come creare un pod che utilizza la risorsa PersistentVolumeClaim creata in precedenza.

Più pod possono condividere la stessa risorsa PersistentVolumeClaim.

  1. Salva il seguente manifest in un file denominato 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. Esegui il seguente comando per applicare il manifest al cluster:

      kubectl apply -f my-pod.yaml
    

    Il pod attende che GKE esegui la provisioning del claim volume permanente prima di iniziare a funzionare. Il completamento di questa operazione potrebbe richiedere diversi minuti.

Gestire il driver CSI Parallelstore

Questa sezione illustra come abilitare e disabilitare Parallelstore CSI conducente, se necessario.

Abilita il driver CSI Parallelstore su un nuovo cluster

Per abilitare il driver CSI Parallelstore durante la creazione di un nuovo cluster standard, esegui il seguente comando con Google Cloud CLI:

gcloud container clusters create CLUSTER_NAME \
    --location=LOCATION \
    --network=NETWORK_NAME \
    --addons=ParallelstoreCsiDriver \
    --cluster-version=VERSION

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del tuo cluster.
  • LOCATION: la zona Compute Engine che contiene in un cluster Kubernetes. Devi specificare una zona supportata per il driver CSI di Parallelstore.
  • NETWORK_NAME: il nome della rete VPC creata in Configurare una rete VPC.
  • VERSION: il numero di versione di GKE. Per utilizzare questa funzionalità, devi specificare un numero di versione supportato, ad esempio GKE 1.29 o versioni successive. In alternativa, puoi utilizzare il flag --release-channel e specificare un canale di rilascio.

Attivare il driver CSI Parallelstore in un cluster esistente

Per abilitare il driver in un cluster GKE Standard esistente, esegui il seguente comando con Google Cloud CLI:

gcloud container clusters update CLUSTER_NAME \
  --location=LOCATION \
  --update-addons=ParallelstoreCsiDriver=ENABLED

Sostituisci quanto segue:

  • CLUSTER_NAME : il nome del cluster.
  • LOCATION: la zona Compute Engine contenente il cluster. Devi specificare una zona supportata per il driver CSI di Parallelstore.

Assicurati che il cluster GKE sia in esecuzione nella stessa rete VPC che hai impostato in Configurare una rete VPC. Per verificare rete VPC per un cluster GKE, puoi controllare nella console Google Cloud o tramite il comando gcloud container clusters describe $(CLUSTER) --format="value(networkConfig.network)" --location=$(LOCATION).

Disabilita il driver CSI Parallelstore

Puoi disattivare il driver CSI Parallelstore su un cluster Autopilot o Standard esistente utilizzando Google Cloud CLI.

gcloud container clusters update CLUSTER_NAME \
    --location=LOCATION \
    --update-addons=ParallelstoreCsiDriver=DISABLED

Sostituisci quanto segue:

  • CLUSTER_NAME : il nome del cluster.
  • LOCATION: la zona Compute Engine contenente il cluster. Devi specificare una zona supportata per il driver CSI Parallelstore.

Utilizzare fsGroup con i volumi Parallelstore

Il driver CSI di Parallelstore supporta la modifica della proprietà del gruppo della directory principale di livello del file system montato in modo che corrisponda a un fsGroup richiesto dall'utente specificato nel pod SecurityContext. Questa funzionalità è supportata solo nei cluster GKE versione 1.29.5 o successive o 1.30.1 o successive.

Risoluzione dei problemi

Per indicazioni sulla risoluzione dei problemi, consulta la sezione Risoluzione dei problemi. pagina nella documentazione di Parallelstore.

Passaggi successivi