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 driver CSI Filestore open sourceGoogle Cloud .
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 Filestore GKE. 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:backupnella 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à ti consente di creare un'istanza Filestore e allocare più volumi permanenti montati su NFS più piccoli contemporaneamente su un numero qualsiasi di cluster GKE.
Supporta la scalabilità indipendente delle prestazioni. Puoi scalare dinamicamente le prestazioni (IOPS) di Filestore indipendentemente dalla capacità di archiviazione in fase di runtime senza interruzioni del servizio.
Requisiti
Per utilizzare il driver CSI Filestore, i cluster devono soddisfare i seguenti requisiti:
- La versione di GKE richiesta dipende dal livello di servizio Filestore e dalle funzionalità che intendi utilizzare. Consulta la tabella Livelli di servizio, protocolli e versioni GKE supportati per le combinazioni supportate.
- Il driver CSI Filestore è supportato solo per i cluster che utilizzano nodi Linux. I nodi Windows Server non sono supportati.
- La dimensione minima dell'istanza è 1 TiB.
Per saperne di più, consulta Livelli di servizio.
Livelli di servizio, protocolli e versioni di GKE supportati
La tabella seguente descrive le combinazioni supportate di livelli di servizio Filestore, protocolli e le versioni GKE minime richieste per l'utilizzo con il driver CSI Filestore.
| Livello di servizio | Tipo di condivisione | Versione minima di GKE per NFSv3 | Versione minima di GKE per NFSv4.1 |
|---|---|---|---|
| Aziende | Condivisione singola, condivisione multipla | 1,25 | 1,33 (solo una condivisione) |
| Zonale (1 TiB - 9,75 TiB) | Singola quota | 1,31 | 1,33 |
| Zonale (10 TiB - 100 TiB) | Singola quota | 1,27 | 1,33 |
| Regionale(1 TiB - 9,75 TiB) | Singola quota | 1.33.4-gke.1172000 | 1.33.4-gke.1172000 |
| Regionale(10 TiB - 100 TiB) | Singola quota | 1.33.4-gke.1172000 | 1.33.4-gke.1172000 |
| HDD base (100 GiB - 63,9 TiB) | Singola quota | 1,33 | Non supportata |
| HDD base | Singola quota | 1.21 | Non supportata |
| SSD base | Singola quota | 1.21 | Non supportata |
Filestore utilizza per impostazione predefinita il protocollo del file system NFSv3 sull'istanza Filestore e supporta qualsiasi client compatibile con NFSv3.
* A seconda dell'accesso alla funzionalità delle istanze di piccola capacità, l'intervallo di capacità inferiore per le istanze regionali Filestore può essere compreso tra 100 GiB e 10.239 GiB o tra 1 TiB e 9,75 TiB. Per saperne di più, consulta Istanze Filestore di piccola capacità.
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
- Per utilizzare Google Cloud CLI per questa attività,
installala e poi
inizializza
gcloud CLI. Se hai già installato gcloud CLI, scarica l'ultima
versione eseguendo il comando
gcloud components update. Le versioni precedenti di gcloud CLI potrebbero non supportare l'esecuzione dei comandi in questo documento.
Assicurati di avere un cluster Autopilot o Standard esistente. Se ne hai bisogno, crea un cluster Autopilot. Il driver CSI Filestore è abilitato per impostazione predefinita per i cluster Autopilot.
Se vuoi utilizzare Filestore su una rete VPC condivisa, consulta le istruzioni di configurazione aggiuntive in Utilizzare Filestore con il VPC condiviso.
Abilita il driver CSI Filestore sul cluster Standard
Per abilitare il driver CSI Filestore sui cluster Standard, utilizza Google Cloud CLI o la console Google Cloud .
Per abilitare il driver su un cluster Standard 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
Vai alla pagina Google Kubernetes Engine nella console Google Cloud .
Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.
Nella sezione Funzionalità, accanto al campo Driver CSI Filestore, fai clic su edit Modifica driver CSI Filestore.
Seleziona la casella di controllo Abilita driver CSI Filestore.
Fai clic su Salva modifiche.
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.
Disabilita il driver CSI Filestore
Puoi disattivare il driver CSI di Filestore su 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
Nella Google Cloud console, vai al menu Google Kubernetes Engine.
Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.
Nella sezione Funzionalità, accanto al campo Driver CSI Filestore, fai clic su edit Modifica driver CSI Filestore.
Deseleziona la casella di controllo Abilita driver CSI Filestore.
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
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: 1TiPer creare le risorse
PersistentVolumeClaimePersistentVolumein base al file manifestpreprov-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 sezioni seguenti descrivono la procedura tipica per l'utilizzo di un volume Kubernetes supportato da un driver CSI Filestore in GKE:
- Crea una StorageClass
- Usa un oggetto PersistentVolumeClaim per accedere al volume
- Crea un deployment che utilizzi il volume
Crea una StorageClass
Dopo aver abilitato il driver CSI Filestore, GKE installa automaticamente le seguenti StorageClasses per il provisioning delle istanze Filestore:
zonal-rwx, utilizzando il livello zonale Filestore.enterprise-rwx, utilizzando il livello Enterprise di Filestore, in cui ogni PersistentVolume di Kubernetes viene mappato a un'istanza Filestore.enterprise-multishare-rwx, utilizzando il livello Enterprise di Filestore, in cui ogni PersistentVolume di Kubernetes viene mappato a una condivisione di una determinata istanza Filestore. Per saperne di più, consulta Multishare Filestore per Google Kubernetes Engine.standard-rwx, utilizzando il livello di servizio HDD base Filestore.premium-rwx, utilizzando il livello di servizio SSD base 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 questo
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.
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: defaultDal manifest, considera la seguente configurazione dei parametri:
- Se imposti
volumeBindingModesuImmediate, 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 suWaitForFirstConsumer, 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,ZONALoENTERPRISE). - Il parametro
networkpuò 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
protocolpuò essere utilizzato per impostare il protocollo del file system dell'istanza Filestore. Può assumere i seguenti valori:NFS_V3(predefinito) eNFS_V4_1. Il protocollo predefinito èNFS_V3.
- Se imposti
Per creare una risorsa
StorageClassbasata sul file manifestfilestore-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 utilizzi 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.
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: 1TiPer creare una risorsa
PersistentVolumeClaimbasata sul file manifestpvc-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.
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: