Skip to main content
La version française est une traduction automatique. La version anglaise prévaut sur la française en cas de divergence.

Configurer Google Cloud NetApp Volumes pour les charges de travail NAS

Contributeurs netapp-aruldeepa joan-ing netapp-mwallis

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

google-cloud-netapp-volumes

NFS PME

Système de fichiers

RWO, ROX, RWX, RWOP

nfs, smb

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 GCP et l'annotation d'identité cloud configurée

Opérateur Trident

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"
Gouvernail

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"
tridentctl

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
Remarque Les volumes NAS utilisent volumeMode: Filesystem.