Configura Google Cloud NetApp Volumes per carichi di lavoro NAS
È possibile configurare Google Cloud NetApp Volumes come backend per Trident per effettuare il provisioning di volumi di storage basati su file. Trident può collegare volumi NFS e SMB utilizzando un backend Google Cloud NetApp Volumes.
|
|
Trident utilizza backend separati per i carichi di lavoro NAS e SAN in Google Cloud NetApp Volumes. Il google-cloud-netapp-volumes backend supporta solo protocolli basati su file e non può essere utilizzato per il provisioning di volumi iSCSI.
|
|
|
Per eseguire il provisioning dei volumi di storage a blocchi iSCSI, utilizzare il
google-cloud-netapp-volumes-san backend, che è un tipo di backend separato progettato specificamente per i carichi di lavoro SAN.
|
Volumi NAS e volumi a blocchi iSCSI
Google Cloud NetApp Volumes supporta sia NAS che storage a blocchi, che differiscono nel modo in cui le applicazioni accedono e gestiscono i dati.
I volumi NAS forniscono storage basato su file e sono accessibili tramite protocolli file standard come NFS o SMB. I volumi vengono montati come file system condivisi e supportano l'accesso simultaneo da più pod o nodi.
I volumi a blocchi iSCSI forniscono storage a blocchi raw e sono accessibili come dispositivi a blocchi collegati ai nodi Kubernetes. Lo storage a blocchi viene in genere utilizzato quando i carichi di lavoro richiedono l'accesso a livello di blocco o un comportamento di I/O gestito dall'applicazione.
Ciò si applica ai seguenti ambienti:
-
Trident 26.02 e versioni successive
-
Google Kubernetes Engine (GKE) o Red Hat OpenShift
-
Pool NAS di Google Cloud NetApp Volumes
-
Carichi di lavoro NFS e SMB
Per i carichi di lavoro a blocchi (iSCSI), vedere Configurare storage a blocchi (iSCSI).
Dettagli del driver di Google Cloud NetApp Volumes
Trident fornisce il google-cloud-netapp-volumes driver per il provisioning dello storage NAS da Google Cloud NetApp Volumes.
Il driver supporta le seguenti modalità di accesso:
-
ReadWriteOnce (RWO)
-
ReadOnlyMany (ROX)
-
ReadWriteMany (RWX)
-
ReadWriteOncePod (RWOP)
| Driver | Protocollo | VolumeMode | Modalità di accesso supportate | File system supportati |
|---|---|---|---|---|
|
NFS PMI |
Filesystem |
RWO, ROX, RWX, RWOP |
|
Identità cloud per Google Kubernetes Engine
Cloud identity consente ai carichi di lavoro Kubernetes di accedere alle risorse Google Cloud autenticandosi come identità del carico di lavoro invece di utilizzare credenziali statiche Google Cloud.
Per utilizzare cloud identity con Google Cloud NetApp Volumes, è necessario disporre di:
-
Un cluster Kubernetes distribuito utilizzando Google Kubernetes Engine (GKE)
-
Identità del carico di lavoro abilitata sul cluster GKE e server dei metadati abilitato sui pool di nodi
-
Un account di servizio Google Cloud con il ruolo di amministratore di Google Cloud NetApp Volumes (
roles/netapp.admin) o un ruolo personalizzato equivalente -
Trident installato con il cloud provider impostato su
GCPe l'annotazione dell'identità cloud configurata
Per installare Trident utilizzando l'operatore Trident, modifica tridentorchestrator_cr.yaml per impostare cloudProvider su GCP e cloudIdentity sull'account del servizio GKE.
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
namespace: trident
cloudProvider: "GCP"
cloudIdentity: "iam.gke.io/gcp-service-account: cloudvolumes-admin-sa@mygcpproject.iam.gserviceaccount.com"
Imposta il cloud provider e l'identità cloud durante l'installazione di Trident con Helm.
helm install trident trident-operator-100.6.0.tgz \ --set cloudProvider=GCP \ --set cloudIdentity="iam.gke.io/gcp-service-account: cloudvolumes-admin-sa@mygcpproject.iam.gserviceaccount.com"
Installa Trident specificando il cloud provider e l'identità cloud.
tridentctl install \ --cloud-provider=GCP \ --cloud-identity="iam.gke.io/gcp-service-account: cloudvolumes-admin-sa@mygcpproject.iam.gserviceaccount.com" \ -n trident
Configurare un backend NAS Trident
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: gcnv-nas
namespace: trident
spec:
version: 1
storageDriverName: google-cloud-netapp-volumes
projectNumber: "<project-number>"
location: "<region>"
sdkTimeout: "600"
storage:
- labels:
cloud: gcp
network: "<vpc-network>"
Effettuare il provisioning dei volumi NAS
I volumi NAS vengono forniti tramite il backend google-cloud-netapp-volumes e supportano i protocolli NFS e SMB.
StorageClass per volumi NFS
Per eseguire il provisioning dei volumi NFS, impostare nasType su nfs.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: gcnv-nfs
provisioner: csi.trident.netapp.io
parameters:
backendType: "google-cloud-netapp-volumes"
trident.netapp.io/nasType: "nfs"
allowVolumeExpansion: true
StorageClass for volumi SMB
Utilizzando nasType, csi.storage.k8s.io/node-stage-secret-name`e
`csi.storage.k8s.io/node-stage-secret-namespace, è possibile specificare un volume SMB e fornire le credenziali Active Directory richieste.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: gcnv-smb
provisioner: csi.trident.netapp.io
parameters:
backendType: "google-cloud-netapp-volumes"
trident.netapp.io/nasType: "smb"
csi.storage.k8s.io/node-stage-secret-name: "smbcreds"
csi.storage.k8s.io/node-stage-secret-namespace: "default"
allowVolumeExpansion: true
Esempio di PersistentVolumeClaim (RWX)
I volumi NAS supportano l'accesso simultaneo e sono comunemente forniti con
ReadWriteMany.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: gcnv-nas-rwx
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 100Gi
storageClassName: gcnv-nfs
Esempio di PersistentVolumeClaim (RWO)
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: gcnv-nas-rwo
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Gi
storageClassName: gcnv-nfs
|
|
I volumi NAS utilizzano volumeMode: Filesystem.
|