Configurer Google Cloud NetApp Volumes pour les charges de travail NAS
Vous pouvez configurer Google Cloud NetApp Volumes comme backend pour que Trident provisionne des volumes de stockage basés sur des fichiers. Trident peut attacher des volumes NFS et SMB en utilisant un backend Google Cloud NetApp Volumes.
Trident utilise des backends distincts pour les charges de travail NAS et SAN dans Google Cloud NetApp Volumes. Le backend google-cloud-netapp-volumes prend uniquement en charge les protocoles basés sur les fichiers et ne peut pas être utilisé pour provisionner des volumes iSCSI.
Pour provisionner des volumes de blocs iSCSI, utilisez le
google-cloud-netapp-volumes-san backend, qui est un type de backend distinct conçu spécifiquement pour les charges de travail SAN.
volumes NAS et volumes bloc iSCSI
Google Cloud NetApp Volumes prend en charge à la fois le stockage NAS et le stockage bloc, qui diffèrent dans la manière dont les applications accèdent et gèrent les données.
Les volumes NAS offrent un stockage basé sur des fichiers et sont accessibles via des protocoles de fichiers standard tels que NFS ou SMB. Les volumes sont montés en tant que systèmes de fichiers partagés et prennent en charge l'accès simultané depuis plusieurs pods ou nœuds.
Les volumes iSCSI offrent un stockage bloc brut et sont accessibles comme des périphériques de bloc attachés aux nœuds Kubernetes. Le stockage bloc est généralement utilisé lorsque les charges de travail nécessitent un accès au niveau bloc ou un comportement d'E/S géré par l'application.
Ceci s'applique aux environnements suivants :
-
Trident 26.02 et versions ultérieures
-
Google Kubernetes Engine (GKE)
-
Google Cloud NetApp Volumes pools NAS
-
Charges de travail NFS et SMB
Pour les charges de travail bloc (iSCSI), voir Configurer le stockage bloc (iSCSI).
Détails du pilote Google Cloud NetApp volumes
Trident fournit le google-cloud-netapp-volumes driver pour provisionner le stockage NAS à partir de Google Cloud NetApp Volumes.
Le pilote prend en charge les modes d'accès suivants :
-
ReadWriteOnce (RWO)
-
ReadOnlyMany (ROX)
-
ReadWriteMany (RWX)
-
ReadWriteOncePod (RWOP)
| Conducteur | Protocole | Mode Volume | Modes d'accès pris en charge | Systèmes de fichiers pris en charge |
|---|---|---|---|---|
|
NFS PME |
Système de fichiers |
RWO, ROX, RWX, RWOP |
|
Identité cloud pour Google Kubernetes Engine
L'identité cloud permet aux charges de travail Kubernetes d'accéder aux ressources Google Cloud en s'authentifiant en tant qu'identité de charge de travail au lieu d'utiliser des identifiants Google Cloud statiques.
Pour utiliser l'identité cloud avec Google Cloud NetApp Volumes, vous devez disposer des éléments suivants :
-
Un cluster Kubernetes déployé à l'aide de Google Kubernetes Engine (GKE)
-
L'identité de la charge de travail est activée sur le cluster GKE et le serveur de métadonnées est activé sur les pools de nœuds
-
Un compte de service Google Cloud avec le rôle d'administrateur Google Cloud NetApp Volumes (
roles/netapp.admin) ou un rôle personnalisé équivalent -
Trident installé avec le fournisseur de cloud défini sur
GCPet l'annotation d'identité cloud configurée
Pour installer Trident à l'aide de l'opérateur Trident, modifiez tridentorchestrator_cr.yaml pour définir cloudProvider sur GCP et cloudIdentity sur le compte de service 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"
Définissez le fournisseur de cloud et l'identité cloud lors de l'installation de Trident avec 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"
Installez Trident en spécifiant le fournisseur de cloud et 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
Configurer 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>"
Provisionner des volumes NAS
Les volumes NAS sont provisionnés à l'aide du google-cloud-netapp-volumes backend et prennent en charge les protocoles NFS et SMB.
StorageClass for les volumes NFS
Pour provisionner des volumes NFS, définissez nasType sur 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 les volumes SMB
En utilisant nasType, csi.storage.k8s.io/node-stage-secret-name et
csi.storage.k8s.io/node-stage-secret-namespace, vous pouvez spécifier un volume SMB et fournir les informations d'identification Active Directory requises.
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
Exemple de PersistentVolumeClaim (RWX)
Les volumes NAS prennent en charge l'accès simultané et sont généralement provisionnés avec
ReadWriteMany.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: gcnv-nas-rwx
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 100Gi
storageClassName: gcnv-nfs
Exemple de PersistentVolumeClaim (RWO)
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: gcnv-nas-rwo
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Gi
storageClassName: gcnv-nfs
|
|
Les volumes NAS utilisent volumeMode: Filesystem.
|