Configurare Google Cloud NetApp Volumes
È possibile configurare Google Cloud NetApp Volumes come backend per Trident al fine di predisporre lo storage per i carichi di lavoro di Kubernetes.
Panoramica
Trident supporta Google Cloud NetApp Volumes sia per carichi di lavoro NAS (NFS e SMB) che a blocchi (iSCSI).
-
I carichi di lavoro NAS utilizzano il
google-cloud-netapp-volumesbackend -
I carichi di lavoro a blocchi (iSCSI) utilizzano il
google-cloud-netapp-volumes-sanbackend
I volumi NAS offrono storage basato su file e vi si accede tramite i protocolli NFS o SMB. Questi volumi supportano l'accesso condiviso tra più pod o nodi.
I volumi a blocchi forniscono storage a blocchi raw e sono accessibili come dispositivi iSCSI collegati ai nodi Kubernetes. Questi volumi vengono utilizzati quando le applicazioni richiedono l'accesso a livello di blocco.
Ciò si applica ai seguenti ambienti:
-
Trident 26.02 e versioni successive
-
Google Kubernetes Engine (GKE) o Red Hat OpenShift
-
Google Cloud NetApp Volumes pool di storage
Per configurare lo storage a blocchi (iSCSI), vedere Configurare storage a blocchi (iSCSI).
Prepararsi alla configurazione
L'identità cloud consente ai carichi di lavoro Kubernetes di accedere alle risorse di Google Cloud autenticandosi come identità del carico di lavoro anziché utilizzare credenziali statiche.
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, modificare tridentorchestrator_cr.yaml:
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 l'archiviazione NAS
Dettagli del driver
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 |
|
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
Per effettuare il provisioning dei volumi SMB, impostare nasType su smb e fornire le credenziali.
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)
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.
|