Accedi alle istanze Filestore con il driver CSI Filestore


Il driver CSI Filestore è il modo principale per utilizzare le istanze Filestore con Google Kubernetes Engine (GKE). Il driver CSI Filestore offre un'esperienza completamente gestita basata sul Google Cloud driver CSI Filestore open source.

La versione del driver CSI Filestore è associata ai numeri di versione secondaria di Kubernetes. La versione del driver CSI Filestore è in genere l'ultima disponibile al momento del rilascio della versione secondaria di Kubernetes. I driver vengono aggiornati automaticamente quando il cluster viene sottoposto all'upgrade all'ultima patch GKE.

Vantaggi

Il driver CSI Filestore offre i seguenti vantaggi:

  • Hai accesso allo spazio di archiviazione NFS completamente gestito tramite le API Kubernetes (kubectl).

  • Puoi utilizzare il driver CSI Filestore di GKE per eseguire il provisioning dinamico dei tuoi PersistentVolume.

  • Puoi utilizzare le istantanee del volume con il driver CSI GKE Filestore. Gli snapshot dei volumi CSI possono essere utilizzati per creare backup Filestore.

    Un backup di Filestore crea una copia differenziale della condivisione file, inclusi tutti i dati e i metadati dei file, e la archivia separatamente dall'istanza. Puoi ripristinare questa copia solo in una nuova istanza Filestore. Il ripristino in un'istanza Filestore esistente non è supportato. Puoi utilizzare l'API CSI volume snapshot per attivare i backup di Filestore aggiungendo un campo type:backup nella classe snapshot del volume.

  • Puoi utilizzare l'espansione del volume con il driver CSI Filestore GKE. L'espansione del volume ti consente di ridimensionare la capacità del volume.

  • Puoi accedere alle istanze Filestore esistenti utilizzando istanze Filestore pre-provisioning nei carichi di lavoro Kubernetes. Puoi anche creare o eliminare dinamicamente istanze Filestore e utilizzarle nei carichi di lavoro Kubernetes con una StorageClass o un Deployment.

  • Supporta Filestore Multishares per GKE. Questa funzionalità consente di creare un'istanza Filestore e allocare contemporaneamente più volumi permanenti montati su NFS per un numero qualsiasi di cluster GKE.

  • Supporta il livello HDD di base con una capacità minima di 100 GiB.

Requisiti

  • Per utilizzare il driver CSI Filestore, i cluster devono utilizzare il numero di versione GKE corretto applicabile al tuo service tier. Sono supportati solo i seguenti livelli di servizio:

    • HDD base con GKE 1.21 o versioni successive
    • HDD base (da 100 GiB a 63,9 TiB) con GKE versione 1.33 o successive
    • SSD base con GKE 1.21 o versioni successive
    • Zonale (da 1 TiB a 9,75 TiB) con GKE versione 1.31 o successive
    • Zonale (da 10 TiB a 100 TiB) con GKE versione 1.27 o successive
    • Enterprise con GKE 1.25 o versioni successive
    • Per utilizzare la funzionalità multishare di Filestore, i cluster devono utilizzare GKE 1.25 o versioni successive.
  • Il driver CSI Filestore è supportato solo per i cluster che utilizzano Linux; i nodi Windows Server non sono supportati.

  • La dimensione minima dell'istanza dipende dal livello di servizio Filestore selezionato:

    • Almeno 100 GiB per l'HDD di base
    • Almeno 1 TiB per gli altri livelli Filestore

    Per saperne di più, consulta Livelli di servizio.

  • Per impostazione predefinita, Filestore utilizza il protocollo del file system NFSv3 sull'istanza Filestore e supporta qualsiasi client compatibile con NFSv3.

  • Il protocollo del file system NFSv4.1 sull'istanza Filestore è supportato per GKE versione 1.33 o successive.

Prima di iniziare

Prima di iniziare, assicurati di aver eseguito le seguenti operazioni:

  • Abilita l'API Cloud Filestore e l'API Google Kubernetes Engine.
  • Abilita le API
  • Se vuoi utilizzare Google Cloud CLI per questa attività, installala e poi inizializzala. Se hai già installato gcloud CLI, scarica l'ultima versione eseguendo gcloud components update.

Abilita il driver CSI Filestore su un nuovo cluster

Per abilitare il driver CSI Filestore durante la creazione di un nuovo cluster Standard, segui questi passaggi con Google Cloud CLI o la console Google Cloud .

gcloud

gcloud container clusters create CLUSTER_NAME \
    --addons=GcpFilestoreCsiDriver \
    --cluster-version=VERSION

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del tuo cluster.
  • VERSION: il numero di versione di GKE. Per utilizzare questa funzionalità, devi selezionare un numero di versione supportato. Per maggiori dettagli, consulta [#requirements]. In alternativa, puoi utilizzare il flag --release-channel e specificare un canale di rilascio.

Console

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud .

    Vai a Google Kubernetes Engine

  2. Fai clic su Crea.

  3. Scegli la modalità cluster Standard, quindi fai clic su Configura.

  4. Configura il cluster in base alle tue esigenze.

  5. Nel riquadro di navigazione, in Cluster, fai clic su Funzionalità.

  6. Seleziona la casella di controllo Abilita driver CSI Filestore.

  7. Fai clic su Crea.

Se vuoi utilizzare Filestore su una rete VPC condivisa, consulta Attivare il driver CSI Filestore su un nuovo cluster con VPC condiviso.

Dopo aver abilitato il driver CSI Filestore, puoi utilizzarlo nei volumi Kubernetes utilizzando il nome del driver e del provisioner: filestore.csi.storage.gke.io.

Abilita il driver CSI Filestore in un cluster esistente

Per attivare il driver CSI di Filestore nei cluster esistenti, utilizza Google Cloud CLI o la console Google Cloud .

Per attivare il driver su un cluster esistente, completa i seguenti passaggi:

gcloud

gcloud container clusters update CLUSTER_NAME \
   --update-addons=GcpFilestoreCsiDriver=ENABLED

Sostituisci CLUSTER_NAME con il nome del cluster esistente.

Console

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud .

    Vai a Google Kubernetes Engine

  2. Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.

  3. Nella sezione Funzionalità, accanto al campo Driver CSI Filestore, fai clic su Modifica driver CSI Filestore.

  4. Seleziona la casella di controllo Abilita driver CSI Filestore.

  5. Fai clic su Salva modifiche.

Disabilita il driver CSI Filestore

Puoi disattivare il driver CSI di Filestore in un cluster Autopilot o Standard esistente utilizzando Google Cloud CLI o la console Google Cloud .

gcloud

gcloud container clusters update CLUSTER_NAME \
    --update-addons=GcpFilestoreCsiDriver=DISABLED \
    --region REGION

Sostituisci i seguenti valori:

  • CLUSTER_NAME: il nome del cluster esistente.
  • REGION: la regione del cluster (ad esempio, us-central1).

Console

  1. Nella console Google Cloud , vai al menu Google Kubernetes Engine.

    Vai a Google Kubernetes Engine

  2. Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.

  3. Nella sezione Funzionalità, accanto al campo Driver CSI Filestore, fai clic su Modifica driver CSI Filestore.

  4. Deseleziona la casella di controllo Abilita driver CSI Filestore.

  5. Fai clic su Salva modifiche.

Accedere alle istanze Filestore preesistenti utilizzando il driver CSI Filestore

Questa sezione descrive la procedura tipica per utilizzare un volume Kubernetes per accedere alle istanze Filestore preesistenti utilizzando il driver CSI Filestore in GKE:

Crea un PersistentVolume e un PersistentVolumeClaim per accedere all'istanza

  1. Crea un file manifest come quello mostrato nell'esempio seguente e chiamalo preprov-filestore.yaml:

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: PV_NAME
    spec:
      storageClassName: ""
      capacity:
        storage: 1Ti
      accessModes:
        - ReadWriteMany
      persistentVolumeReclaimPolicy: Retain
      volumeMode: Filesystem
      csi:
        driver: filestore.csi.storage.gke.io
        volumeHandle: "modeInstance/FILESTORE_INSTANCE_LOCATION/FILESTORE_INSTANCE_NAME/FILESTORE_SHARE_NAME"
        volumeAttributes:
          ip: FILESTORE_INSTANCE_IP
          volume: FILESTORE_SHARE_NAME
          protocol: FILESYSTEM_PROTOCOL
      claimRef:
        name: PVC_NAME
        namespace: NAMESPACE
    ---
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: PVC_NAME
      namespace: NAMESPACE
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: ""
      resources:
        requests:
          storage: 1Ti
    
  2. Per creare le risorse PersistentVolumeClaim e PersistentVolume in base al file manifest preprov-filestore.yaml, esegui questo comando:

    kubectl apply -f preprov-filestore.yaml
    

Per specificare il protocollo del file system NFSv4.1, imposta il campo protocol su NFS_V4_1 nel campo volumeAttributes di un oggetto PersistentVolume. Per utilizzare il protocollo del file system NFSv3, imposta il campo protocol su NFS_V3 o ometti il campo protocol.

Quindi, procedi a creare un deployment che utilizza il volume.

Crea un volume utilizzando il driver CSI Filestore

Le seguenti sezioni descrivono la procedura tipica per l'utilizzo di un volume Kubernetes supportato da un driver CSI Filestore in GKE:

Crea una StorageClass

Dopo aver abilitato il driver CSI Filestore, GKE installa automaticamente le seguenti StorageClasses per il provisioning delle istanze Filestore:

Ogni StorageClass è disponibile solo nei cluster GKE in esecuzione con i rispettivi numeri di versione GKE supportati. Per un elenco delle versioni supportate richieste per ogni livello di servizio, consulta Requisiti.

Puoi trovare il nome di StorageClass installato eseguendo il seguente comando:

kubectl get sc

Puoi anche installare un StorageClass diverso che utilizza il driver CSI di Filestore aggiungendo filestore.csi.storage.gke.io nel campo provisioner.

Filestore deve sapere su quale rete creare la nuova istanza. Le StorageClass installate automaticamente utilizzano la rete predefinita creata per i cluster GKE. Se hai eliminato questa rete o vuoi utilizzarne una diversa, devi creare una nuova StorageClass come descritto nei passaggi seguenti. In caso contrario, le StorageClass installate automaticamente non funzioneranno.

  1. Salva il seguente manifest come filestore-example-class.yaml:

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: filestore-example
    provisioner: filestore.csi.storage.gke.io
    volumeBindingMode: Immediate
    allowVolumeExpansion: true
    parameters:
      tier: standard
      network: default
    

    Dal manifest, considera la seguente configurazione dei parametri:

    • Se imposti volumeBindingMode su Immediate, il provisioning del volume può iniziare immediatamente. Ciò è possibile perché le istanze Filestore sono accessibili da qualsiasi zona. Pertanto, GKE non ha bisogno di conoscere la zona in cui è pianificato il pod, a differenza del disco permanente Compute Engine. Se impostato su WaitForFirstConsumer, GKE inizia il provisioning solo dopo la pianificazione del pod. Per ulteriori informazioni, vedi VolumeBindingMode.
    • Qualsiasi livello Filestore supportato può essere specificato nel parametro tier (ad esempio BASIC_HDD, BASIC_SSD, ZONAL o ENTERPRISE).
    • Il parametro network può essere utilizzato durante il provisioning delle istanze Filestore su VPC non predefiniti. I VPC non predefiniti richiedono la configurazione di regole firewall speciali.
    • Il parametro protocol può essere utilizzato per impostare il protocollo del file system dell'istanza Filestore. Può assumere i seguenti valori: NFS_V3 (predefinito) e NFS_V4_1. Il protocollo predefinito è NFS_V3.
  2. Per creare una risorsa StorageClass basata sul file manifest filestore-example-class.yaml, esegui questo comando:

    kubectl create -f filestore-example-class.yaml
    

Se vuoi utilizzare Filestore su una rete VPC condivisa, consulta Creare una StorageClass quando si utilizza il driver CSI Filestore con il VPC condiviso.

Usa un oggetto PersistentVolumeClaim per accedere al volume

Puoi creare una risorsa PersistentVolumeClaim che fa riferimento a StorageClass del driver CSI Filestore.

Puoi utilizzare un StorageClass preinstallato o personalizzato.

Il seguente file manifest di esempio crea un PersistentVolumeClaim che fa riferimento a StorageClass denominato filestore-example.

  1. Salva il seguente file manifest come pvc-example.yaml:

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: podpvc
    spec:
      accessModes:
      - ReadWriteMany
      storageClassName: filestore-example
      resources:
        requests:
          storage: 1Ti
    
  2. Per creare una risorsa PersistentVolumeClaim basata sul file manifest pvc-example.yaml, esegui questo comando:

    kubectl create -f pvc-example.yaml
    

Crea un deployment che utilizzi il volume

Il seguente manifest di Deployment utilizza la risorsa PersistentVolume denominata pvc-example.yaml.

Più pod possono condividere la stessa risorsa PersistentVolumeClaim.

  1. Salva il seguente manifest come filestore-example-deployment.yaml:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: web-server-deployment
      labels:
        app: nginx
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx
            volumeMounts:
            - mountPath: /usr/share/nginx/html
              name: mypvc
          volumes:
          - name: mypvc
            persistentVolumeClaim:
              claimName: podpvc
    ---
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: podpvc
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: filestore-example
      resources:
        requests:
          storage: 1Ti
    
  2. Per creare un deployment basato sul file manifest filestore-example-deployment.yaml, esegui questo comando:

    kubectl apply -f filestore-example-deployment.yaml
    
  3. Verifica che il deployment sia stato creato correttamente:

    kubectl get deployment
    

    Il completamento del provisioning delle istanze Filestore potrebbe richiedere un po' di tempo. Prima di questa data, i deployment non segnaleranno lo stato READY. Puoi monitorare l'avanzamento controllando lo stato della PVC eseguendo questo comando:

    kubectl get pvc
    

    Dovresti vedere il PVC raggiungere lo stato BOUND al termine del provisioning del volume.

Etichettare le istanze Filestore

Puoi utilizzare le etichette per raggruppare le istanze correlate e memorizzare i metadati di un'istanza. Un'etichetta è una coppia chiave-valore che ti aiuta a organizzare le istanze Filestore. Puoi allegare un'etichetta a ogni risorsa, quindi filtrare le risorse in base alle etichette.

Puoi fornire le etichette utilizzando la chiave labels in StorageClass.parameters. Un'istanza Filestore può essere etichettata con informazioni su PersistentVolumeClaim/PersistentVolume per cui è stata creata. Le chiavi e i valori delle etichette personalizzate devono essere conformi alla convenzione di denominazione delle etichette. Consulta l'esempio di classe di archiviazione di Kubernetes per applicare etichette personalizzate all'istanza Filestore.

Utilizzare il protocollo del file system NFSv4.1 con Filestore

Il driver CSI Filestore supporta il protocollo del file system NFSv4.1 con GKE versione 1.33 o successive. In caso di provisioning statico, imposta il campo protocol su NFS_V4_1 nel campo volumeAttributes di un oggetto PersistentVolume.

Per il provisioning dinamico, imposta il campo protocol su NFS_V4_1 nei parametri di un oggetto StorageClass.

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: enterprise-multishare-rwx
provisioner: filestore.csi.storage.gke.io
parameters:
  tier: enterprise
  multishare: "true"
  instance-storageclass-label: "enterprise-multishare-rwx"
  protocol: NFS_V4_1
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: true

Non puoi montare l'istanza Filestore con il protocollo NFSv4.1 con mountOptions impostato su nfsvers=3 nell'oggetto StorageClass.

Utilizzare fsgroup con i volumi Filestore

Kubernetes utilizza fsGroup per modificare le autorizzazioni e la proprietà del volume in modo che corrispondano a un fsGroup richiesto dall'utente nel SecurityContext del pod. Un fsGroup è un gruppo supplementare che si applica a tutti i container in un pod. Puoi applicare un fsgroup ai volumi di cui è stato eseguito il provisioning dal driver CSI Filestore.

Configura le regole di accesso IP con i volumi Filestore

Filestore supporta le regole di controllo dell'accesso basate su IP per i volumi. Questa funzionalità è disponibile nei cluster GKE che eseguono la versione 1.29.5 o successive.

Questa funzionalità consente agli amministratori di specificare gli intervalli di indirizzi IP autorizzati ad accedere a un'istanza Filestore di cui è stato eseguito il provisioning in modo dinamico tramite GKE. In questo modo, la sicurezza viene migliorata limitando l'accesso solo ai client autorizzati, soprattutto negli scenari in cui l'intervallo IP del cluster GKE è troppo ampio, il che potrebbe esporre l'istanza Filestore a utenti o applicazioni non autorizzati.

Queste regole possono essere configurate direttamente tramite l'API Filestore o tramite il driver CSI Filestore quando viene creato un volume. Puoi fornire la configurazione selezionata in formato JSON in StorageClass utilizzando il parametro nfs-export-options-on-create.

Il seguente manifest di esempio mostra come specificare la configurazione:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: filestore-example
provisioner: filestore.csi.storage.gke.io
volumeBindingMode: Immediate
allowVolumeExpansion: true
parameters:
  tier: "enterprise"
  nfs-export-options-on-create: '[
    {
      "accessMode": "READ_WRITE",
      "ipRanges": [
        "10.0.0.0/24"
      ],
      "squashMode": "ROOT_SQUASH",
      "anonUid": "1003",
      "anonGid": "1003"
    },
    {
      "accessMode": "READ_WRITE",
      "ipRanges": [
        "10.0.0.0/28"
      ],
      "squashMode": "NO_ROOT_SQUASH"
    }
  ]'

Opzioni di sicurezza

Le regole di accesso IP di Filestore semplificano la configurazione delle autorizzazioni di archiviazione dei file condivisi per i tuoi workload GKE. Tuttavia, per capire come gestisce la proprietà e l'accesso ai file, è necessario comprendere alcuni concetti chiave:

  • Mapping NFS e utente NFS (Network File System) è il protocollo utilizzato da Filestore. Funziona mappando gli utenti sui sistemi client (i tuoi pod GKE) agli utenti sul server Filestore. Se un file sul server è di proprietà dell'ID utente 1003 e un client si connette con l'ID utente 1003, avrà accesso al file.

  • Root squashing e anonUid:

    • Root Squashing ROOT_SQUASH è una funzionalità di sicurezza che impedisce ai client di accedere all'istanza Filestore con privilegi root completi. Quando root squash è attivato, gli utenti root sui sistemi client vengono mappati a un utente non privilegiato specificato dall'impostazione anonUid.

    • Nessun root squash (NO_ROOT_SQUASH) consente ai client di accedere all'istanza Filestore con privilegi root completi, il che è comodo per la configurazione iniziale, ma meno sicuro per le operazioni regolari.

  • Configurazione iniziale e autorizzazioni:per impostazione predefinita, una nuova istanza Filestore è di proprietà esclusiva dell'utente root. Se attivi la compressione della radice senza prima configurare le autorizzazioni per altri utenti, perderai l'accesso. Per questo motivo, devi avere almeno una regola di esportazione NFS con NO_ROOT_SQUASH per configurare inizialmente l'accesso per altri utenti e gruppi.

Consigli

  • Configurazione iniziale: inizia sempre con almeno una regola di esportazione NFS che specifichi un intervallo di amministratori con autorizzazioni READ_WRITE e consenta l'accesso NO_ROOT_SQUASH. Utilizza questo accesso per creare directory, impostare le autorizzazioni e assegnare la proprietà in base alle esigenze.
  • Sicurezza:attiva la compressione della radice (ROOT_SQUASH) per migliorare la sicurezza. Tieni presente che, dopo la creazione di un volume, puoi modificare le regole di accesso solo tramite l'API Filestore.
  • Accesso condiviso:utilizza fsGroup nei contesti di sicurezza dei pod per gestire la proprietà di gruppo dei volumi condivisi. Assicurati di non sovrapporre l'impostazione alla modalità ROOT_SQUASH. In questo modo viene restituito un messaggio di errore Access denied.

Utilizzare Filestore con VPC condiviso

Questa sezione illustra come utilizzare un'istanza Filestore su una rete VPC condiviso da un progetto di servizio.

Configura un cluster con VPC condiviso

Per configurare i cluster con una rete VPC condiviso:

  1. Crea un progetto host e un progetto di servizio.
  2. Abilita l'API Google Kubernetes Engine sia nel progetto host che in quello di servizio.
  3. Nel progetto host, crea una rete e una subnet.
  4. Abilita la rete VPC condivisa nel progetto host.
  5. Nel progetto host, concedi l'associazione del ruolo utente HostServiceAgent per il service account GKE del progetto di servizio.
  6. Abilita l'accesso privato ai servizi sulla VPC condiviso condivisa.

Abilita il driver CSI Filestore su un nuovo cluster con VPC condiviso

Per abilitare il driver CSI Filestore su un nuovo cluster con VPC condiviso, segui questi passaggi:

  1. Verifica le subnet utilizzabili e gli intervalli secondari. Quando crei un cluster, devi specificare una subnet e gli intervalli di indirizzi IP secondari da utilizzare per i pod e il servizio del cluster.

    gcloud container subnets list-usable \
       --project=SERVICE_PROJECT_ID \
       --network-project=HOST_PROJECT_ID
    

    L'output è simile al seguente:

    PROJECT                   REGION       NETWORK     SUBNET  RANGE
    HOST_PROJECT_ID  us-central1  shared-net  tier-1  10.0.4.0/22
    ┌──────────────────────┬───────────────┬─────────────────────────────┐
    │ SECONDARY_RANGE_NAME  IP_CIDR_RANGE             STATUS           │
    ├──────────────────────┼───────────────┼─────────────────────────────┤
    │ tier-1-pods           10.4.0.0/14    usable for pods or services │
    │ tier-1-services       10.0.32.0/20   usable for pods or services │
    └──────────────────────┴───────────────┴─────────────────────────────┘
    
  2. Creare un cluster GKE. Gli esempi seguenti mostrano come puoi utilizzare gcloud CLI per creare un cluster Autopilot o Standard configurato per VPC condiviso. Gli esempi seguenti utilizzano i nomi di rete, subnet e intervallo di Creazione di una rete e due subnet.

    Autopilot

    gcloud container clusters create-auto tier-1-cluster \
       --project=SERVICE_PROJECT_ID \
       --region=COMPUTE_REGION \
       --network=projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME \
       --subnetwork=projects/HOST_PROJECT_ID/regions/COMPUTE_REGION/subnetworks/SUBNET_NAME \
       --cluster-secondary-range-name=tier-1-pods \
       --services-secondary-range-name=tier-1-services
    

    Standard

    gcloud container clusters create tier-1-cluster \
       --project=SERVICE_PROJECT_ID \
       --zone=COMPUTE_REGION \
       --enable-ip-alias \
       --network=projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME \
       --subnetwork=projects/HOST_PROJECT_ID/regions/COMPUTE_REGION/subnetworks/SUBNET_NAME \
       --cluster-secondary-range-name=tier-1-pods \
       --services-secondary-range-name=tier-1-services \
       --addons=GcpFilestoreCsiDriver
    
  3. Crea regole firewall per consentire la comunicazione tra nodi, pod e servizi nel cluster. Il seguente esempio mostra come creare una regola firewall denominata my-shared-net-rule-2.

    gcloud compute firewall-rules create my-shared-net-rule-2 \
       --project HOST_PROJECT_ID \
       --network=NETWORK_NAME \
       --allow=tcp,udp \
       --direction=INGRESS \
       --source-ranges=10.0.4.0/22,10.4.0.0/14,10.0.32.0/20
    

    Nell'esempio, i valori IP degli intervalli di origine provengono dal passaggio precedente in cui hai verificato le subnet utilizzabili e gli intervalli secondari.

Crea una StorageClass quando utilizzi il driver CSI Filestore con VPC condiviso

L'esempio seguente mostra come creare una StorageClass quando utilizzi il driver CSI Filestore con il VPC condiviso:

cat <<EOF | kubectl apply -f -

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: filestore-sharedvpc-example
provisioner: filestore.csi.storage.gke.io
parameters:
  network: "projects/HOST_PROJECT_ID/global/networks/SHARED_VPC_NAME"
  connect-mode: PRIVATE_SERVICE_ACCESS
  reserved-ip-range: RESERVED_IP_RANGE_NAME
allowVolumeExpansion: true

EOF

Sostituisci quanto segue:

  • HOST_PROJECT_ID: l'ID o il nome del progetto host della rete VPC condiviso.
  • SHARED_VPC_NAME: il nome della rete VPC condiviso che hai creato in precedenza.
  • RESERVED_IP_RANGE_NAME: il nome dell'intervallo di indirizzi IP riservati specifico in cui eseguire il provisioning dell'istanza Filestore. Questo campo è facoltativo. Se viene specificato un intervallo di indirizzi IP riservato, deve essere un intervallo di indirizzi denominato anziché un valore CIDR diretto.

Se vuoi eseguire il provisioning di un volume supportato da Filestore multishares sui cluster GKE che eseguono la versione 1.23 o successive, consulta Ottimizzare l'archiviazione con Filestore multishares per GKE.

Riconnettere i volumi di condivisione singola Filestore

Se utilizzi Filestore con il livello HDD base, SSD base o Enterprise (condivisione singola), puoi seguire queste istruzioni per riconnettere la tua istanza Filestore esistente ai tuoi carichi di lavoro GKE.

  1. Trova i dettagli dell'istanza Filestore di cui è stato eseguito il provisioning seguendo le istruzioni riportate in Recuperare informazioni su un'istanza specifica.

  2. Esegui nuovamente il deployment della specifica PersistentVolume. Nel campo volumeAttributes, modifica i seguenti campi in modo che utilizzino gli stessi valori dell'istanza Filestore del passaggio 1:

    • ip: modifica questo valore con l'indirizzo IP dell'istanza Filestore di cui è stato eseguito il provisioning preliminare.
    • volume: Modifica questo valore con il nome della condivisione dell'istanza Filestore di cui è stato eseguito il provisioning preliminare. In claimRef assicurati di fare riferimento allo stesso PersistentVolumeClaim del passaggio 2.
  3. Esegui nuovamente il deployment della specifica PersistentVolumeClaim.

  4. Controlla lo stato del binding di PersistentVolumeClaim e PersistentVolume eseguendo kubectl get pvc.

  5. Esegui nuovamente il deployment della specifica del pod e assicurati che il pod possa accedere di nuovo alla condivisione Filestore.

Passaggi successivi