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 une classe de stockage

Contributeurs netapp-aruldeepa kcantrel

La "Objet classe de stockage Kubernetes" identifie un provisionneur et lui indique comment provisionner les volumes. Cette section montre comment configurer un objet Kubernetes StorageClass qui spécifie Trident comme provisionneur.

Créer un objet StorageClass

Lorsque vous créez un StorageClass pour FSx for ONTAP, Trident créera automatiquement la configuration backend.

Remarque Si vous souhaitez configurer manuellement le stockage backend, veuillez vous référer à la section [create-a-kubernetes-storageclass-without-automatic-backend-configuration] pour savoir comment créer séparément le backend Trident et la classe de stockage.

Spécifiez les paramètres requis StorageClass

Les trois paramètres suivants doivent être définis lors de la création d'un StorageClass :

Paramètre Obligatoire Type Description

fsxFilesystemID

Oui.

chaîne

ID du système de fichiers FSx for NetApp ONTAP

storageDriverName

Oui.

chaîne

Pilote de stockage Trident (par exemple, ontap-nas ou ontap-san)

credentialsName

Oui.

chaîne

Nom du secret Kubernetes qui contient les informations d'identification FSx for ONTAP

Spécifiez les paramètres optionnels

Vous pouvez transmettre des paramètres backend optionnels via le StorageClass. Définissez toutes les valeurs optionnelles sous forme de chaînes dans la section StorageClass parameters. Pour une liste complète des paramètres du backend, voir : Configuration du backend FSx for NetApp ONTAP.

Exemples de fichiers de configuration StorageClass.

L'exemple suivant montre un StorageClass qui déclenche une configuration automatique du backend.

YAML
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: ontap-fsx-demo
  annotations:
    description: "Demo StorageClass for FSx for NetApp ONTAP"
provisioner: csi.trident.netapp.io
parameters:
  fsxFilesystemID: "fs-0abc123"
  storageDriverName: "ontap-nas"
  credentialsName: trident-fsx-credentials
allowVolumeExpansion: true
reclaimPolicy: Delete
volumeBindingMode: Immediate
JSON
{
  "apiVersion": "storage.k8s.io/v1",
  "kind": "StorageClass",
  "metadata": {
    "name": "ontap-fsx-demo",
    "annotations": {
      "description": "Demo StorageClass for FSx for NetApp ONTAP"
    }
  },
  "provisioner": "csi.trident.netapp.io",
  "parameters": {
    "fsxFilesystemID": "fs-0abc123",
    "storageDriverName": "ontap-nas",
    "credentialsName": "trident-fsx-credentials"
  },
  "allowVolumeExpansion": true,
  "reclaimPolicy": "Delete",
  "volumeBindingMode": "Immediate"
}

Créez le StorageClass

Une fois que vous avez créé votre fichier de configuration, exécutez la commande suivante pour créer la classe de stockage.

kubectl create -f storage-class-ontapnas.yaml

Vous devriez maintenant voir une classe de stockage Basic-csi dans Kubernetes et Trident, et Trident aurait dû détecter les pools sur le back-end.

kubectl get sc basic-csi
NAME         PROVISIONER             AGE
basic-csi    csi.trident.netapp.io   15h

Après avoir appliqué le StorageClass, Trident crée automatiquement le backend. Vous pouvez ensuite créer des PersistentVolumeClaims qui référencent ce StorageClass.

Vérifier l'état de la configuration du backend

Trident enregistre le résultat de la création du backend dans les annotations StorageClass.

Annotation Description

trident.netapp.io/configuratorStatus

Résultat de la configuration (Success ou Failure)

trident.netapp.io/configuratorMessage

Message d'état ou d'erreur détaillé

trident.netapp.io/configuratorName

Nom de la ressource du configurateur interne

trident.netapp.io/managed

Indique que le StorageClass est géré par Trident

trident.netapp.io/additionalStoragePools

Pools de stockage créés pour ce backend

Pour vérifier l'état, exécutez :

kubectl get storageclass ontap-fsx-demo -o yaml

Confirmez que trident.netapp.io/configuratorStatus est défini sur Success. Si la valeur est Failure, examinez trident.netapp.io/configuratorMessage pour l’erreur.

Ajouter des systèmes de fichiers FSxN supplémentaires

Si vous avez besoin de stockage supplémentaire tout en continuant à utiliser le même StorageClass, ajoutez des identifiants de système de fichiers FSxN supplémentaires.

Modifiez le StorageClass et ajoutez l'annotation suivante :

metadata:
  annotations:
    trident.netapp.io/additionalFsxNFileSystemID: '["fs-xxxxxxxxxxxxxxxxxx"]'

Une fois la modification appliquée, Trident met à jour la configuration du backend et met à jour les annotations StorageClass.

Considérations et limitations opérationnelles

  • La suppression d’un StorageClass qui utilise la configuration automatique du backend supprime généralement le backend Trident associé. Cela peut perturber la connectivité du stockage et interrompre les charges de travail en cours. Validez l’impact avant de supprimer un StorageClass géré.

  • La configuration automatique du backend est prise en charge uniquement pour AWS FSx pour NetApp ONTAP.

Créer un StorageClass Kubernetes sans configuration automatique du backend

Si vous souhaitez créer le backend Trident et le StorageClass séparément, suivez ces étapes.

Comprendre le fonctionnement de la configuration automatique du backend

Trident déduit la configuration du backend à partir de la définition de la StorageClass. Lorsque vous appliquez la StorageClass, Trident valide les paramètres requis, crée le backend et annote la StorageClass avec le statut.

Trident crée le VolumeSnapshotClass une seule fois. Trident réutilise le même VolumeSnapshotClass pour les StorageClasses suivants.

Créer le backend Trident

Pour créer un backend Trident, vous devez créer un fichier de configuration au format JSON ou YAML. Le fichier doit spécifier le type de stockage souhaité (NAS ou SAN), le système de fichiers, la SVM à utiliser et la méthode d'authentification. L'exemple suivant montre comment définir un stockage basé sur NAS et utiliser un secret AWS pour stocker les informations d'identification de la SVM que vous souhaitez utiliser :

YAML
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
  name: backend-tbc-ontap-nas
  namespace: trident
spec:
  version: 1
  storageDriverName: ontap-nas
  backendName: tbc-ontap-nas
  svm: svm-name
  aws:
    fsxFilesystemID: fs-xxxxxxxxxx
  credentials:
    name: "arn:aws:secretsmanager:us-west-2:xxxxxxxx:secret:secret-name"
    type: awsarn
JSON
{
  "apiVersion": "trident.netapp.io/v1",
  "kind": "TridentBackendConfig",
  "metadata": {
    "name": "backend-tbc-ontap-nas"
    "namespace": "trident"
  },
  "spec": {
    "version": 1,
    "storageDriverName": "ontap-nas",
    "backendName": "tbc-ontap-nas",
    "svm": "svm-name",
    "aws": {
      "fsxFilesystemID": "fs-xxxxxxxxxx"
    },
    "managementLIF": null,
    "credentials": {
      "name": "arn:aws:secretsmanager:us-west-2:xxxxxxxx:secret:secret-name",
      "type": "awsarn"
    }
  }
}

Détails du pilote FSX pour ONTAP

Vous pouvez intégrer Trident avec Amazon FSX for NetApp ONTAP à l'aide des pilotes suivants :

Nom du pilote Description

ontap-san

Chaque PV provisionné est un LUN au sein de son propre volume Amazon FSx for NetApp ONTAP. Recommandé pour le stockage bloc.

ontap-nas

Chaque PV provisionné est un volume Amazon FSx for NetApp ONTAP complet. Recommandé pour NFS et SMB.

ontap-san-economy

Chaque PV provisionné est un LUN avec un nombre configurable de LUN par Amazon FSx for NetApp ONTAP volume.

ontap-nas-economy

Chaque PV provisionné est un qtree, avec un nombre configurable de qtrees par volume Amazon FSx for NetApp ONTAP.

ontap-nas-flexgroup

Chaque PV provisionné est un volume Amazon FSx for NetApp ONTAP FlexGroup complet.

Pour plus d'informations sur le pilote, reportez-vous à la section "Pilotes NAS" et "Pilotes SAN".

Créer le backend

Après avoir créé le fichier de configuration, exécutez les commandes suivantes pour créer et valider la configuration du backend Trident (TBC) :

  • Créez la configuration Trident backend (TBC) à partir du fichier yaml et exécutez la commande suivante :

    kubectl create -f backendconfig.yaml -n trident
    tridentbackendconfig.trident.netapp.io/backend-tbc-ontap-nas created
  • Vérifiez que la configuration du back-end Trident (TBC) a été créée avec succès :

    Kubectl get tbc -n trident
    NAME                         BACKEND NAME         BACKEND UUID                           PHASE   STATUS
    
    backend-tbc-ontap-nas        tbc-ontap-nas        933e0071-66ce-4324-b9ff-f96d916ac5e9   Bound   Success

Pour plus d'informations sur les autres options de configuration, consultez la [Backend-advanced-configuration-and-examples] section ci-dessous.

Configurer une classe de stockage sans configuration automatique du backend

Voici des exemples de configurations de classes de stockage à utiliser avec Trident et FSx pour ONTAP.

Classe de stockage pour NFS

Vous pouvez utiliser cet exemple pour configurer StorageClass pour des volumes utilisant NFS (reportez-vous à la section Attributs Trident ci-dessous pour la liste complète des attributs) :

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: ontap-gold
provisioner: csi.trident.netapp.io
parameters:
  backendType: "ontap-nas"
  provisioningType: "thin"
  snapshots: "true"

Classe de stockage pour iSCSI

Utilisez cet exemple pour configurer StorageClass pour des volumes utilisant iSCSI :

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: ontap-gold
provisioner: csi.trident.netapp.io
parameters:
  backendType: "ontap-san"
  provisioningType: "thin"
  snapshots: "true"

Classe de stockage utilisant NFSv3 et AWS Bottlerocket

Pour provisionner des volumes NFSv3 sur AWS BottlerRocket, ajoutez les éléments requis mountOptions à la classe de stockage :

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: ontap-gold
provisioner: csi.trident.netapp.io
parameters:
  backendType: "ontap-nas"
  media: "ssd"
  provisioningType: "thin"
  snapshots: "true"
mountOptions:
  - nfsvers=3
  - nolock

Attributs de Trident StorageClass

Ces paramètres déterminent quels pools de stockage gérés par Trident doivent être utilisés pour provisionner les volumes d'un type donné.

Attribut Type Valeurs Offre Demande Pris en charge par

support1

chaîne

hdd, hybride, ssd

Le pool contient des supports de ce type ; hybride signifie les deux

Type de support spécifié

ontap-nas, ontap-nas-économie, ontap-nas-flexgroup, ontap-san, solidfire-san

Type de provisionnement

chaîne

fin, épais

Le pool prend en charge cette méthode de provisionnement

Méthode de provisionnement spécifiée

thick : tous les systèmes ONTAP ; thin : tous les systèmes ONTAP et solidfire-san

Type de dos

chaîne

ontap-nas, ontap-nas-economy, ontap-nas-flexgroup, ontap-san, solidfire-san, azure-netapp-files, ontap-san-economy

Le pool appartient à ce type de système back-end

Backend spécifié

Tous les conducteurs

snapshots

bool

vrai, faux

Le pool prend en charge les volumes dotés de snapshots

Volume sur lequel les snapshots sont activés

ontap-nas, ontap-san, solidfire-san

clones

bool

vrai, faux

Le pool prend en charge les volumes de clonage

Volume sur lequel les clones sont activés

ontap-nas, ontap-san, solidfire-san

le cryptage

bool

vrai, faux

Le pool prend en charge les volumes chiffrés

Volume avec chiffrement activé

ontap-nas, économie ontap-nas, ontap-nas-flexgroups, ontap-san

D'IOPS

int

entier positif

Le pool est en mesure de garantir l'IOPS dans cette plage

Volume garanti ces IOPS

solidfire-san

1 : Non pris en charge par ONTAP Select ou les systèmes FSx for ONTAP

Reportez-vous "Kubernetes et objets Trident"à pour plus de détails sur l'interaction des classes de stockage avec les PersistentVolumeClaim paramètres et pour le contrôle de la manière dont Trident provisionne les volumes.

Créer la classe de stockage

Une fois que vous avez configuré le StorageClass, vous pouvez le créer dans Kubernetes.

Étapes
  1. Il s'agit d'un objet Kubernetes, alors utilisez-le kubectl Pour la créer dans Kubernetes.

    kubectl create -f storage-class-ontapnas.yaml
  2. Vous devriez maintenant voir une classe de stockage Basic-csi dans Kubernetes et Trident, et Trident aurait dû détecter les pools sur le back-end.

    kubectl get sc basic-csi
NAME         PROVISIONER             AGE
basic-csi    csi.trident.netapp.io   15h

Volumes de provisionnement pour PME

Vous pouvez provisionner des volumes SMB à l'aide du ontap-nas driver. Cependant, pour ce faire, vous devez effectuer ces étapes : "Préparez-vous au provisionnement des volumes SMB".

Configuration avancée back-end et exemples

Voir le tableau suivant pour les options de configuration du back-end :

Paramètre Description Exemple

version

Toujours 1

storageDriverName

Nom du pilote de stockage

ontap-nas, ontap-nas-economy, ontap-nas-flexgroup, ontap-san, ontap-san-economy

backendName

Nom personnalisé ou système back-end de stockage

Nom du pilote + "_" + dataLIF

managementLIF

Adresse IP d'un cluster ou LIF de gestion De SVM Un nom de domaine complet (FQDN) peut être spécifié. Peut être configuré pour utiliser des adresses IPv6 si Trident a été installé à l'aide de l'indicateur IPv6. Les adresses IPv6 doivent être définies entre crochets, telles que [28e8:d9fb:a825:b7bf:69a8:d02f:9e7b:3555]. Si vous fournissez fsxFilesystemID sous le aws champ, il n'est pas nécessaire de fournir le managementLIF car Trident récupère les informations du SVM managementLIF auprès d'AWS. Donc, vous devez fournir des informations d'identification pour un utilisateur sous la SVM (par exemple : vsadmin) et l'utilisateur doit avoir le vsadmin rôle.

« 10.0.0.1 », « [2001:1234:abcd::fefe] »

dataLIF

Adresse IP de la LIF de protocole. ONTAP NAS drivers : NetApp recommande de spécifier dataLIF. Si elle n'est pas fournie, Trident récupère les dataLIF depuis la SVM. Vous pouvez spécifier un nom de domaine pleinement qualifié (FQDN) à utiliser pour les opérations de montage NFS, ce qui vous permet de créer un DNS à répartition de charge (round-robin) entre plusieurs dataLIF. Peut être modifié après le paramétrage initial. ONTAP SAN drivers : ne pas spécifier pour iSCSI. Trident utilise ONTAP Selective LUN Map pour découvrir les LIF iSCSI nécessaires à l'établissement d'une session multi-chemin. Un avertissement est généré si dataLIF est explicitement défini. Peut être défini pour utiliser des adresses IPv6 si Trident a été installé avec le paramètre IPv6. Les adresses IPv6 doivent être définies entre crochets, par exemple [28e8:d9fb:a825:b7bf:69a8:d02f:9e7b:3555].

autoExportPolicy

Activer la création et la mise à jour automatiques des règles d'exportation [booléennes]. Grâce aux autoExportPolicy options et autoExportCIDRs, Trident peut gérer automatiquement les règles d'export.

false

autoExportCIDRs

Liste des CIDR permettant de filtrer les adresses IP des nœuds Kubernetes par rapport à lorsque autoExportPolicy est activé. Grâce aux autoExportPolicy options et autoExportCIDRs, Trident peut gérer automatiquement les règles d'export.

« [« 0.0.0.0/0 », «:/0 »] »

labels

Ensemble d'étiquettes arbitraires au format JSON à appliquer aux volumes

« »

clientCertificate

Valeur encodée en Base64 du certificat client. Utilisé pour l'authentification par certificat

« »

clientPrivateKey

Valeur encodée en Base64 de la clé privée du client. Utilisé pour l'authentification par certificat

« »

trustedCACertificate

Valeur encodée en Base64 du certificat CA de confiance. Facultatif. Utilisé pour l'authentification basée sur des certificats.

« »

username

Nom d'utilisateur pour la connexion au cluster ou au SVM. Utilisé pour l'authentification basée sur les identifiants. Par exemple, vsadmin.

password

Mot de passe pour se connecter au cluster ou au SVM. Utilisé pour l'authentification basée sur les identifiants.

svm

Serveur virtuel de stockage à utiliser

Dérivé si une LIF de gestion SVM est spécifiée.

storagePrefix

Préfixe utilisé pour le provisionnement des nouveaux volumes dans la SVM. Ne peut pas être modifié après sa création. Pour mettre à jour ce paramètre, vous devez créer un nouveau backend.

trident

limitAggregateUsage

Ne spécifiez pas pour Amazon FSX pour NetApp ONTAP. Les fournies fsxadmin et vsadmin ne contiennent pas les autorisations requises pour récupérer l'utilisation des agrégats et la limiter à l'aide de Trident.

Ne pas utiliser.

limitVolumeSize

Echec du provisionnement si la taille du volume demandé est supérieure à cette valeur. Limite également la taille maximale des volumes gérés pour les qtrees et les LUN, et qtreesPerFlexvol permet de personnaliser le nombre maximal de qtrees par FlexVol volume

« » (non appliqué par défaut)

lunsPerFlexvol

Le nombre maximal de LUN par FlexVol volume doit être compris dans la plage [50, 200]. SAN uniquement.

« 100 »

debugTraceFlags

Indicateurs de débogage à utiliser lors du dépannage. Exemple, {"api":false, "method":true}

Ne pas utiliser debugTraceFlags à moins que vous ne soyez en mesure de dépanner et que vous ayez besoin d'un vidage détaillé des journaux.

nul

nfsMountOptions

Liste des options de montage NFS séparée par des virgules. Les options de montage des volumes persistants Kubernetes sont normalement spécifiées dans les classes de stockage, mais si aucune option de montage n'est spécifiée dans une classe de stockage, Trident revient à utiliser les options de montage spécifiées dans le fichier de configuration du back-end de stockage. Si aucune option de montage n'est spécifiée dans la classe de stockage ou le fichier de configuration, Trident ne définit aucune option de montage sur un volume persistant associé.

« »

nasType

Configurez la création de volumes NFS ou SMB. Les options sont nfs, smb, ou nul. Doit être défini sur smb Pour les volumes SMB. la valeur NULL est définie par défaut sur les volumes NFS.

nfs

qtreesPerFlexvol

Nombre maximal de qtree par FlexVol volume, doit être compris dans la plage [50, 300]

"200"

smbShare

Vous pouvez spécifier l'une des options suivantes : le nom d'un partage SMB créé à l'aide de la console de gestion Microsoft ou de l'interface de ligne de commande ONTAP, ou un nom permettant à Trident de créer le partage SMB. Ce paramètre est requis pour Amazon FSX pour les systèmes back-end ONTAP.

smb-share

useREST

Paramètre booléen pour utiliser les API REST de ONTAP. Lorsqu'il est défini sur true, Trident utilise les API REST ONTAP pour communiquer avec le back-end. Cette fonctionnalité requiert ONTAP 9.11.1 et versions ultérieures. En outre, le rôle de connexion ONTAP utilisé doit avoir accès à l' ontap application. Ceci est satisfait par les rôles et prédéfinis vsadmin cluster-admin .

false

aws

Vous pouvez spécifier ce qui suit dans le fichier de configuration d'AWS FSX pour ONTAP :
- fsxFilesystemID: Spécifiez l'ID du système de fichiers AWS FSX.
- apiRegion: Nom de la région de l'API AWS.
- apikey: Clé d'API AWS.
- secretKey: Clé secrète AWS.





""
""
""

credentials

Spécifiez les informations d'identification de SVM FSX à stocker dans AWS secrets Manager. - name: Amazon Resource Name (ARN) du secret, qui contient les références de SVM. - type: Réglé sur awsarn. Pour plus d'informations, reportez-vous à la section "Créez un secret AWS secrets Manager" .

Options de configuration back-end pour les volumes de provisionnement

Vous pouvez contrôler le provisionnement par défaut à l'aide de ces options dans defaults section de la configuration. Pour un exemple, voir les exemples de configuration ci-dessous.

Paramètre Description Valeur par défaut

spaceAllocation

Allocation d'espace pour les LUN

true

spaceReserve

Mode de réservation d'espace ; « aucun » (fin) ou « volume » (épais)

none

snapshotPolicy

Règle Snapshot à utiliser

none

qosPolicy

QoS policy group à affecter pour les volumes créés. Choisissez une de qosPolicy ou adaptiveQosPolicy par pool de stockage ou back-end. L'utilisation de groupes de règles de qualité de service avec Trident nécessite ONTAP 9.8 ou une version ultérieure. Vous devez utiliser un groupe de règles QoS non partagé et vous assurer que le groupe de règles est appliqué à chaque composant individuellement. Un groupe de règles de QoS partagées applique le débit total de toutes les charges de travail.

« »

adaptiveQosPolicy

Groupe de règles de QoS adaptative à attribuer aux volumes créés. Choisissez une de qosPolicy ou adaptiveQosPolicy par pool de stockage ou back-end. Non pris en charge par l'économie ontap-nas.

« »

snapshotReserve

Pourcentage du volume réservé pour les snapshots « 0 »

Si snapshotPolicy est none, else ""

splitOnClone

Séparer un clone de son parent lors de sa création

false

encryption

Activez le chiffrement de volume NetApp (NVE) sur le nouveau volume. La valeur par défaut est false. Pour utiliser cette option, NVE doit être sous licence et activé sur le cluster. Si NAE est activé sur le back-end, tout volume provisionné dans Trident est activé. Pour plus d'informations, reportez-vous à la section : "Fonctionnement de Trident avec NVE et NAE".

false

luksEncryption

Activez le cryptage LUKS. Reportez-vous à la section "Utiliser la configuration de clé unifiée Linux (LUKS)". SAN uniquement.

« »

tieringPolicy

Règle de hiérarchisation à utiliser none

unixPermissions

Mode pour les nouveaux volumes. Laisser vide pour les volumes SMB.

« »

securityStyle

Style de sécurité pour les nouveaux volumes. Prise en charge de NFS mixed et unix styles de sécurité. SMB prend en charge mixed et ntfs styles de sécurité.

NFS par défaut est unix. SMB par défaut est ntfs.