Configurer une classe de stockage
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.
|
|
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 |
|---|---|---|---|
|
Oui. |
chaîne |
ID du système de fichiers FSx for NetApp ONTAP |
|
Oui. |
chaîne |
Pilote de stockage Trident (par exemple, |
|
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.
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
{
"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 |
|---|---|
|
Résultat de la configuration ( |
|
Message d'état ou d'erreur détaillé |
|
Nom de la ressource du configurateur interne |
|
Indique que le StorageClass est géré par Trident |
|
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 :
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
{
"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 |
|---|---|
|
Chaque PV provisionné est un LUN au sein de son propre volume Amazon FSx for NetApp ONTAP. Recommandé pour le stockage bloc. |
|
Chaque PV provisionné est un volume Amazon FSx for NetApp ONTAP complet. Recommandé pour NFS et SMB. |
|
Chaque PV provisionné est un LUN avec un nombre configurable de LUN par Amazon FSx for NetApp ONTAP volume. |
|
Chaque PV provisionné est un qtree, avec un nombre configurable de qtrees par volume Amazon FSx for NetApp ONTAP. |
|
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 tridenttridentbackendconfig.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 tridentNAME 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.
-
Il s'agit d'un objet Kubernetes, alors utilisez-le
kubectlPour la créer dans Kubernetes.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
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 |
|---|---|---|
|
Toujours 1 |
|
|
Nom du pilote de stockage |
|
|
Nom personnalisé ou système back-end de stockage |
Nom du pilote + "_" + dataLIF |
|
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 |
« 10.0.0.1 », « [2001:1234:abcd::fefe] » |
|
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]. |
|
|
Activer la création et la mise à jour automatiques des règles d'exportation [booléennes]. Grâce aux |
|
|
Liste des CIDR permettant de filtrer les adresses IP des nœuds Kubernetes par rapport à lorsque |
« [« 0.0.0.0/0 », «:/0 »] » |
|
Ensemble d'étiquettes arbitraires au format JSON à appliquer aux volumes |
« » |
|
Valeur encodée en Base64 du certificat client. Utilisé pour l'authentification par certificat |
« » |
|
Valeur encodée en Base64 de la clé privée du client. Utilisé pour l'authentification par certificat |
« » |
|
Valeur encodée en Base64 du certificat CA de confiance. Facultatif. Utilisé pour l'authentification basée sur des certificats. |
« » |
|
Nom d'utilisateur pour la connexion au cluster ou au SVM. Utilisé pour l'authentification basée sur les identifiants. Par exemple, vsadmin. |
|
|
Mot de passe pour se connecter au cluster ou au SVM. Utilisé pour l'authentification basée sur les identifiants. |
|
|
Serveur virtuel de stockage à utiliser |
Dérivé si une LIF de gestion SVM est spécifiée. |
|
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. |
|
|
Ne spécifiez pas pour Amazon FSX pour NetApp ONTAP. Les fournies |
Ne pas utiliser. |
|
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 |
« » (non appliqué par défaut) |
|
Le nombre maximal de LUN par FlexVol volume doit être compris dans la plage [50, 200]. SAN uniquement. |
« 100 » |
|
Indicateurs de débogage à utiliser lors du dépannage. Exemple, {"api":false, "method":true} |
nul |
|
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é. |
« » |
|
Configurez la création de volumes NFS ou SMB. Les options sont |
|
|
Nombre maximal de qtree par FlexVol volume, doit être compris dans la plage [50, 300] |
|
|
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. |
|
|
Paramètre booléen pour utiliser les API REST de ONTAP. Lorsqu'il est défini sur |
|
|
Vous pouvez spécifier ce qui suit dans le fichier de configuration d'AWS FSX pour ONTAP : |
|
|
Spécifiez les informations d'identification de SVM FSX à stocker dans 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 |
|---|---|---|
|
Allocation d'espace pour les LUN |
|
|
Mode de réservation d'espace ; « aucun » (fin) ou « volume » (épais) |
|
|
Règle Snapshot à utiliser |
|
|
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. |
« » |
|
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. |
« » |
|
Pourcentage du volume réservé pour les snapshots « 0 » |
Si |
|
Séparer un clone de son parent lors de sa création |
|
|
Activez le chiffrement de volume NetApp (NVE) sur le nouveau volume. La valeur par défaut est |
|
|
Activez le cryptage LUKS. Reportez-vous à la section "Utiliser la configuration de clé unifiée Linux (LUKS)". SAN uniquement. |
« » |
|
Règle de hiérarchisation à utiliser |
|
|
Mode pour les nouveaux volumes. Laisser vide pour les volumes SMB. |
« » |
|
Style de sécurité pour les nouveaux volumes. Prise en charge de NFS |
NFS par défaut est |