Installez Trident sur un cluster OpenShift Red Hat et créez des objets de stockage
Installez Trident avec l'opérateur Trident certifié Red Hat et créez des objets de stockage pour ONTAP et Amazon FSx for NetApp ONTAP afin d'activer le provisionnement dynamique de volumes pour les conteneurs et les machines virtuelles. Préparez les nœuds de travail pour l'accès bloc si nécessaire.
-
Effectuez les procédures de cette page avant d’installer OpenShift Virtualization. OpenShift Virtualization nécessite un StorageClass et un VolumeSnapshotClass par défaut pris en charge par Trident pour créer des images de référence pour les modèles de machines virtuelles.
-
Si vous avez déjà installé OpenShift Virtualization avant de configurer Trident, supprimez toutes les images de référence créées avec une autre classe de stockage. Après avoir défini Trident comme stockage par défaut, OpenShift Virtualization recrée les images de référence en utilisant le stockage Trident.
oc delete dv,VolumeSnapshot -n openshift-virtualization-os-images --selector=cdi.kubevirt.io/dataImportCron
Étape 1 : Installer Trident
L'opérateur Trident certifié Red Hat est pris en charge par NetApp pour OpenShift sur site, dans les clouds publics et dans les services gérés tels que ROSA. À partir de Trident 25.02, l'opérateur peut également préparer les nœuds de travail pour iSCSI lorsque vous utilisez Amazon FSx for NetApp ONTAP et prévoyez d'exécuter des charges de travail de machines virtuelles OpenShift Virtualization.
Pour d'autres options d'installation, voir "la documentation Trident".
-
Dans OperatorHub, sélectionnez Certified NetApp Trident.
Afficher un exemple

-
Sur la page Install, conservez la dernière version et sélectionnez Install.
Afficher un exemple

-
Après l'installation de l'opérateur, sélectionnez View operator et créez une instance de Trident Orchestrator.
Si vous souhaitez préparer les nœuds de travail pour iSCSI, passez à la vue YAML et ajoutez
iscsiànodePrep.Afficher un exemple

-
Confirmez que tous les pods Trident sont en cours d'exécution dans le cluster.
Afficher un exemple

-
Si vous avez activé la préparation des nœuds iSCSI, connectez-vous aux nœuds de travail et vérifiez que
iscsidetmultipathdsont actifs et quemultipath.confcontient des entrées.Afficher un exemple

Afficher un exemple

Afficher un exemple

La vidéo suivante présente une démonstration de l'installation de Trident à l'aide de l'opérateur Trident certifié Red Hat.
Étape 2 : Préparez le système de stockage et les fichiers de configuration StorageClass pour votre environnement
Créez des définitions TridentBackendConfig et StorageClass pour votre environnement. Vous pouvez configurer plusieurs protocoles de stockage dans votre environnement. Créez des fichiers YAML pour chaque protocole que vous souhaitez utiliser et remplacez les valeurs de remplacement par les détails spécifiques de votre configuration.
|
|
Remplissez soit la section sur site, soit la section ROSA ci-dessous en fonction de votre environnement, puis passez à l'étape 3. |
Clusters OpenShift sur site
Créez des fichiers YAML pour chaque protocole que vous souhaitez configurer. Vous pouvez configurer un ou plusieurs des protocoles suivants : NAS pour le stockage de fichiers basé sur NFS, iSCSI pour le stockage bloc iSCSI, NVMe/TCP pour le stockage bloc NVMe over TCP haute performance, ou FC pour le stockage bloc Fibre Channel.
Créez un TridentBackendConfig et un StorageClass pour chaque protocole. La configuration du backend inclut des informations d'identification stockées dans un Secret Kubernetes.
Directives essentielles pour les options de configuration de base du backend
-
Les fichiers de configuration du backend font référence à votre ONTAP SVM et à votre LIF de gestion. +
-
Vous pouvez utiliser un nom d'utilisateur et un mot de passe pour vous authentifier auprès d'ONTAP. Il peut s'agir du nom d'utilisateur et du mot de passe d'administrateur de cluster ou d'administrateur de vserver. +
-
Vous pouvez également utiliser un certificat client pour l'authentification avec ONTAP. Pour plus de détails sur la génération du certificat client, de la clé privée et du certificat d'autorité de certification, veuillez consulter "Documentation Trident ici".
Directives essentielles pour les options de configuration du backend pour le pilote NAS economy
Les paramètres suivants peuvent être inclus pour la configuration du NAS economy driver :
-
qtreesPerFlexvol La valeur doit être comprise entre 50 et 300, la valeur par défaut est 200. +
-
limitVolumePoolSize La valeur correspond à la taille maximale de FlexVol que vous demandez lors de l'utilisation de qtrees dans le backend ontap-nas-economy. Aucune valeur par défaut n'est définie et ce paramètre n'est pas appliqué par défaut. Si vous définissez ce paramètre, l'opérateur Trident crée un nouveau FlexVol lorsque le FlexVol actuel atteint la taille spécifiée. Ce paramètre peut vous aider à contrôler l'utilisation de la capacité de votre cluster en limitant la taille des FlexVols utilisés pour le provisionnement des PV. +
-
denyNewVolumePools Ce paramètre empêche les backends ontap-nas-economy de créer de nouveaux volumes FlexVol® pour contenir leurs qtrees. Seuls les FlexVol® préexistants sont utilisés pour le provisionnement de nouveaux PV.
Directives essentielles pour les options de configuration du backend pour le pilote SAN
Les paramètres suivants peuvent être inclus pour la configuration du pilote SAN :
-
limitVolumeSize Cette valeur correspond à la taille maximale de volume que vous demandez lors de l'utilisation d'un backend SAN. Aucune valeur par défaut n'est définie et ce paramètre n'est pas appliqué par défaut. Si vous définissez ce paramètre, l'opérateur Trident échouera lors du provisionnement si la taille de volume demandée dépasse cette valeur. Vous pouvez utiliser ce paramètre pour restreindre la taille maximale des volumes qu'il gère pour les LUN. +
-
lunsPerFlexvol Nombre maximal de LUN par FlexVol®, doit être compris entre 50 et 200, la valeur par défaut étant 100. Si vous définissez ce paramètre, l’opérateur Trident crée un nouveau FlexVol lorsque le FlexVol actuel atteint le nombre de LUN spécifié. Ce paramètre peut vous aider à contrôler l’utilisation de la capacité de votre cluster en limitant le nombre de LUN par FlexVol utilisé pour le provisionnement des PV.
Recommandations essentielles pour les options de configuration du backend pour le pilote SAN economy
Les paramètres suivants peuvent être inclus pour la configuration du SAN economy driver :
-
limitVolumePoolSize La valeur correspond à la taille maximale de FlexVol® que vous demandez lors de l'utilisation du backend SAN economy. Aucune valeur par défaut n'est définie et ce paramètre n'est pas appliqué par défaut. Si vous définissez ce paramètre, l'opérateur Trident limite la taille maximale de FlexVol® qui peut être créée pour la création de LUN dans le FlexVol®. Ce paramètre peut vous aider à contrôler l'utilisation de la capacité dans votre cluster en limitant la taille des FlexVol® utilisés pour le provisionnement de PV. +
-
denyNewVolumePools Ce paramètre empêche les back-ends SAN economy de créer de nouveaux volumes FlexVol® pour contenir leurs LUN. Seuls les FlexVol® préexistants sont utilisés pour le provisionnement de nouveaux PV.
Directives essentielles concernant les options de configuration du backend pour le provisionnement des volumes
|
|
Dans les exemples de fichiers YAML fournis pour chaque protocole, si storagePrefix n'est pas spécifié, le préfixe par défaut « trident » est utilisé. Lorsque vous utilisez ontap-nas-economy et un storagePrefix de 24 caractères ou plus, les qtrees n'incluent pas le préfixe de stockage, bien qu'il figure dans le nom du volume. |
Lorsque vous créez un volume dans ONTAP directement depuis le gestionnaire système ou depuis l'interface de ligne de commande (CLI), sans fournir de valeurs pour tous les paramètres optionnels, certaines valeurs par défaut sont définies automatiquement lors de la mise en service d'un volume, comme indiqué ci-dessous.


Voici un exemple de volume créé à l'aide de la configuration du backend Trident. Aucune option n'est explicitement définie dans la section des valeurs par défaut, à l'exception du modèle de nom.
oc describe tbc -n trident tbc-nas
### output truncated for brevity
Spec:
Backend Name: tbc-nas
Credentials:
Name: tbc-nas-secret
Defaults: # There are no defaults set except for the volume name template.
Name Template: {{ .config.StoragePrefix }}_{{ .volume.Namespace }}_{{ .volume.RequestName }}
Management LIF: 10.192.102.50
Storage Driver Name: ontap-nas
Storage Prefix: testautomation
Svm: oc-test-automation
Lorsque le volume est créé à l'aide de cette configuration backend, les options qui ne sont pas définies dans le fichier de configuration backend sont définies sur les valeurs par défaut, comme indiqué ci-dessous.

Cependant, lorsque vous définissez des valeurs dans la section par défaut de la configuration du backend Trident, vous pouvez créer des volumes qui peuvent avoir des valeurs spécifiques pour ces paramètres. Dans l'exemple suivant, snapshotPolicy est définie sur la stratégie par défaut (elle est « none » si vous ne définissez rien explicitement) et snapshotDir est définie sur « true » dans la section par défaut du fichier de configuration yaml du backend. Avec ces paramètres, vous pouvez constater que le volume du backend reçoit ces valeurs. (snapdir-access est « true » et snapshot-policy est « default »)



Pour tous les autres paramètres supplémentaires, veuillez consulter la documentation Trident :
Créez un TridentBackendConfig et un StorageClass pour ONTAP NAS afin d'activer le provisionnement de stockage persistant basé sur NFS. La configuration du backend inclut des informations d'identification stockées dans un secret Kubernetes et fait référence à votre ONTAP SVM et à votre LIF de gestion.
Exemple de secret backend et de fichier de configuration backend utilisant la méthode d'authentification par nom d'utilisateur et mot de passe (enregistrez sous tbc-nas.yaml) :
# tbc-nas.yaml
apiVersion: v1
kind: Secret
metadata:
name: tbc-nas-secret
type: Opaque
stringData:
username: <cluster admin username>
password: <cluster admin password>
---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: tbc-nas
spec:
version: 1
storageDriverName: ontap-nas
managementLIF: <ONTAP management LIF>
backendName: tbc-nas
svm: zoneb #<replace with your SVM name>
storagePrefix: testzoneb #<replace with your prefix>
defaults:
nameTemplate: "{{ .config.StoragePrefix }}_{{ .volume.Namespace }}_{{ .volume.RequestName }}"
credentials:
name: tbc-nas-secret
Exemple de secret backend et de fichier de configuration backend utilisant la méthode d'authentification par certificat client (enregistrez sous tbc-nas.yaml) :
# tbc-nas.yaml
apiVersion: v1
kind: Secret
metadata:
name: ontap-nas-secret
namespace: trident
type: Opaque
stringData:
clientPrivateKey: <client private>
---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: tbc-nas
namespace: trident
spec:
version: 1
storageDriverName: ontap-nas
managementLIF: <ONTAP management LIF>
backendName: tbc-nas
svm: zoneb #<replace with your SVM name>
storagePrefix: testzoneb #<replace with your prefix>
credentials:
name: ontap-nas-secret
clientCertificate: <client certificate>
StorageClass definition (enregistrer sous sc-nas.yaml):
# sc-nas.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: sc-nas
provisioner: csi.trident.netapp.io
parameters:
backendType: "ontap-nas"
media: "ssd"
provisioningType: "thin"
snapshots: "true"
allowVolumeExpansion: true
Créez un TridentBackendConfig et un StorageClass pour le pilote d'économie NAS ONTAP afin d'activer le provisionnement de stockage persistant basé sur NFS à l'aide de qtrees. La configuration du backend inclut des informations d'identification stockées dans un secret Kubernetes et fait référence à votre SVM ONTAP et à votre LIF de gestion.
Exemple de secret backend et de fichier de configuration backend utilisant la méthode d'authentification par nom d'utilisateur et mot de passe (enregistrez sous tbc-nas-economy.yaml) :
# tbc-nas-economy.yaml
apiVersion: v1
kind: Secret
metadata:
name: tbc-nas-economy-secret
type: Opaque
stringData:
username: <cluster admin username>
password: <cluster admin password>
---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: tbc-nas-economy
spec:
version: 1
storageDriverName: ontap-nas-economy
managementLIF: <ONTAP management LIF>
backendName: tbc-nas-eco
svm: <replace with your SVM name>
storagePrefix: <replace with your prefix>
defaults:
nameTemplate: "{{ .config.StoragePrefix }}_{{ .volume.Namespace }}_{{ .volume.RequestName }}"
credentials:
name: tbc-nas-economy-secret
StorageClass definition (enregistrer sous sc-nas-economy.yaml):
# sc-nas-economy.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: sc-nas-economy
provisioner: csi.trident.netapp.io
parameters:
backendType: "ontap-nas-economy"
media: "ssd"
provisioningType: "thin"
snapshots: "true"
allowVolumeExpansion: true
|
|
Veuillez consulter la section « Directives essentielles pour les options de configuration du backend du pilote NAS economy » ci-dessus pour plus de détails sur les paramètres supplémentaires pouvant être inclus dans le fichier de configuration du pilote ontap-nas-economy. |
Créez un TridentBackendConfig et un StorageClass pour ONTAP SAN avec iSCSI afin d'activer le provisionnement de stockage bloc basé sur iSCSI. La configuration du backend utilise le pilote ontap-san et inclut des informations d'identification stockées dans un Secret Kubernetes. Le paramètre sanType utilise par défaut le protocole iSCSI s'il est omis.
Secret backend et fichier de configuration backend utilisant la méthode d'authentification par nom d'utilisateur et mot de passe (enregistrez sous tbc-iscsi.yaml) :
# tbc-iscsi.yaml
apiVersion: v1
kind: Secret
metadata:
name: backend-tbc-ontap-iscsi-secret
type: Opaque
stringData:
username: <cluster admin username>
password: <cluster admin password>
---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: ontap-iscsi
spec:
version: 1
storageDriverName: ontap-san
managementLIF: <management LIF>
backendName: ontap-iscsi
svm: <SVM name>
credentials:
name: backend-tbc-ontap-iscsi-secret
Secret backend et fichier de configuration backend utilisant la méthode d'authentification par certificat client (enregistrez sous tbc-iscsi.yaml) :
# tbc-iscsi.yaml
apiVersion: v1
kind: Secret
metadata:
name: backend-tbc-ontap-iscsi-secret
type: Opaque
stringData:
clientPrivateKey: <client private key>
---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: ontap-iscsi
spec:
version: 1
storageDriverName: ontap-san
managementLIF: <management LIF>
backendName: ontap-iscsi
svm: <SVM name>
credentials:
name: backend-tbc-ontap-iscsi-secret
clientCertificate: <client certificate>
StorageClass definition (enregistrer sous sc-iscsi.yaml):
# sc-iscsi.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: sc-iscsi
provisioner: csi.trident.netapp.io
parameters:
backendType: "ontap-san"
media: "ssd"
provisioningType: "thin"
fsType: ext4
snapshots: "true"
allowVolumeExpansion: true
Créez un TridentBackendConfig et un StorageClass pour ONTAP SAN avec NVMe sur TCP afin d'activer le provisionnement de stockage bloc haute performance. La configuration du backend utilise le pilote ontap-san optimisé pour le transport NVMe/TCP et inclut des informations d'identification stockées dans un Secret Kubernetes.
Secret backend et fichier de configuration backend utilisant la méthode d'authentification par nom d'utilisateur et mot de passe (enregistrez sous tbc-nvme.yaml) :
# tbc-nvme.yaml
apiVersion: v1
kind: Secret
metadata:
name: backend-tbc-ontap-nvme-secret
type: Opaque
stringData:
username: <cluster admin username>
password: <cluster admin password>
---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: backend-tbc-ontap-nvme
spec:
version: 1
storageDriverName: ontap-san
sanType: nvme
managementLIF: <ONTAP management LIF>
backendName: backend-tbc-ontap-nvme
svm: <SVM name>
credentials:
name: backend-tbc-ontap-nvme-secret
Secret backend et fichier de configuration backend utilisant la méthode d'authentification par certificat client (enregistrez sous tbc-nvme.yaml) :
# tbc-nvme.yaml
apiVersion: v1
kind: Secret
metadata:
name: backend-tbc-ontap-nvme-secret
type: Opaque
stringData:
clientPrivateKey: <client private key>
---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: backend-tbc-ontap-nvme
spec:
version: 1
storageDriverName: ontap-san
sanType: nvme
managementLIF: <ONTAP management LIF>
backendName: backend-tbc-ontap-nvme
svm: <SVM name>
credentials:
name: backend-tbc-ontap-nvme-secret
clientCertificate: <client certificate>
StorageClass definition (enregistrer sous sc-nvme.yaml):
# sc-nvme.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: sc-nvme
provisioner: csi.trident.netapp.io
parameters:
backendType: "ontap-san"
media: "ssd"
provisioningType: "thin"
fsType: ext4
snapshots: "true"
allowVolumeExpansion: true
|
|
Si vous prévoyez d'utiliser des volumes ReadWriteMany (RWX) avec le protocole NVMe, un seul volume NVMe RWX ne peut pas être monté par plus de 64 nœuds dans un cluster Kubernetes. Pour plus d'informations sur cette limitation et sur le modèle de super-sous-système introduit dans Trident 26.02 ainsi que sur le modèle de sous-système par volume antérieur à Trident 26.02, consultez la documentation Trident : https://docs.netapp.com/us-en/trident/trident-use/ontap-san-prep.html#nvme-tcp-considerations. |
Créez un TridentBackendConfig et un StorageClass pour ONTAP SAN avec Fibre Channel afin d'activer le provisionnement du stockage bloc basé sur FC. La configuration du backend utilise le pilote ontap-san avec le protocole FCP spécifié et inclut des informations d'identification stockées dans un Secret Kubernetes.
Utilisez la méthode d'authentification par nom d'utilisateur/mot de passe ou la méthode d'authentification par certificat client pour vous authentifier auprès d'ONTAP. Pour plus d'informations sur la génération du certificat client, de la clé privée et du certificat d'autorité de certification, veuillez consulter "Documentation Trident ici". Des exemples pour les deux méthodes sont fournis ci-dessous.
Afficher un exemple
Secret backend et fichier de configuration backend utilisant la méthode d'authentification par nom d'utilisateur et mot de passe ONTAP (enregistrez sous tbc-fc.yaml) :
# tbc-fc.yaml
apiVersion: v1
kind: Secret
metadata:
name: tbc-fc-secret
type: Opaque
stringData:
username: <cluster admin username>
password: <cluster admin password>
---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: tbc-fc
spec:
version: 1
storageDriverName: ontap-san
managementLIF: <ONTAP management LIF>
backendName: tbc-fc
svm: openshift-fc #<replace with your SVM name>
sanType: fcp
storagePrefix: demofc #<replace with your prefix>
defaults:
nameTemplate: "{{ .config.StoragePrefix }}_{{ .volume.Namespace }}_{{ .volume.RequestName }}"
credentials:
name: tbc-fc-secret
Secret backend et fichier de configuration backend utilisant la méthode d'authentification par certificat client (enregistrez sous tbc-fc.yaml) :
# tbc-fc.yaml
apiVersion: v1
kind: Secret
metadata:
name: tbc-fc-secret
type: Opaque
stringData:
clientPrivateKey: <client private key>
---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: tbc-fc
spec:
version: 1
storageDriverName: ontap-san
managementLIF: <ONTAP management LIF>
backendName: tbc-fc
svm: openshift-fc #<replace with your SVM name>
sanType: fcp
storagePrefix: demofc #<replace with your prefix>
defaults:
nameTemplate: "{{ .config.StoragePrefix }}_{{ .volume.Namespace }}_{{ .volume.RequestName }}"
credentials:
name: tbc-fc-secret
clientCertificate: <client certificate>
# sc-fc.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: sc-fc
provisioner: csi.trident.netapp.io
parameters:
backendType: "ontap-san"
media: "ssd"
provisioningType: "thin"
fsType: ext4
snapshots: "true"
allowVolumeExpansion: true
Créez un TridentBackendConfig et un StorageClass pour ONTAP SAN economy avec iSCSI afin d’activer le provisionnement du stockage bloc basé sur iSCSI. La configuration du backend utilise le pilote ontap-san-economy avec le protocole iSCSI et inclut des informations d’identification stockées dans un Secret Kubernetes.
Secret backend et fichier de configuration backend utilisant la méthode d'authentification par certificat client (enregistrez sous tbc-san-eco.yaml) :
# tbc-san-eco.yaml
---
apiVersion: v1
kind: Secret
metadata:
name: ontap-san-cert-auth
namespace: trident
type: Opaque
stringData:
clientPrivateKey: <client private key>
---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: tbc-san-eco-cert
namespace: trident
spec:
version: 1
storageDriverName: ontap-san-economy
managementLIF: "<ONTAP management LIF>"
backendName: tbc_san_eco
svm: <replace with your SVM name>
storagePrefix: <replace with your prefix>
credentials:
name: ontap-san-cert-auth
clientCertificate: <client certificate>
# sc-san-eco.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: sc-san-eco
provisioner: csi.trident.netapp.io
parameters:
backendType: "ontap-san-economy"
provisioningType: "thin"
snapshots: "true"
Consultez la documentation Trident pour obtenir des exemples supplémentaires de fichiers yaml, ainsi que des informations sur les modes d'accès et les modes de volume pris en charge par les pilotes SAN et NAS.
Clusters ROSA avec Amazon FSx for NetApp ONTAP
Créez des fichiers YAML pour chaque protocole que vous souhaitez configurer. Vous pouvez configurer un ou les deux protocoles suivants : NAS pour le stockage de fichiers basé sur NFS ou iSCSI pour le stockage bloc.
Créez une TridentBackendConfig et une StorageClass pour Amazon FSx for NetApp ONTAP avec ONTAP NAS afin d'activer le provisionnement de stockage persistant basé sur NFS sur les clusters ROSA. La configuration backend utilise les noms DNS d'Amazon FSx for NetApp ONTAP pour les LIF de gestion et de données, et inclut des informations d'identification stockées dans un Secret Kubernetes dans l'espace de noms trident.
Secret backend et fichier de configuration backend (à enregistrer sous tbc-fsx-nas.yaml):
# tbc-fsx-nas.yaml
apiVersion: v1
kind: Secret
metadata:
name: backend-fsx-ontap-nas-secret
type: Opaque
stringData:
username: <FSx for ONTAP, for example fsxadmin>
password: <FSx for ONTAP password>
---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: backend-fsx-ontap-nas
spec:
version: 1
backendName: fsx-ontap
storageDriverName: ontap-nas
managementLIF: <Management DNS name>
dataLIF: <NFS DNS name>
svm: <SVM NAME>
credentials:
name: backend-fsx-ontap-nas-secret
StorageClass definition (enregistrer sous sc-fsx-nas.yaml):
# sc-fsx-nas.yaml (storage class name is trident-csi)
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: trident-csi
provisioner: csi.trident.netapp.io
parameters:
backendType: "ontap-nas"
fsType: "ext4"
allowVolumeExpansion: true
reclaimPolicy: Retain
Créez un TridentBackendConfig et un StorageClass pour Amazon FSx for NetApp ONTAP avec ONTAP SAN afin d'activer le provisionnement de stockage bloc basé sur iSCSI sur les clusters ROSA. La configuration du backend utilise le pilote ontap-san et inclut des informations d'identification stockées dans un Secret Kubernetes. Assurez-vous que les nœuds de travail sont préparés pour l'accès iSCSI.
Secret backend et fichier de configuration backend (à enregistrer sous tbc-fsx-iscsi.yaml):
# tbc-fsx-iscsi.yaml
apiVersion: v1
kind: Secret
metadata:
name: backend-tbc-fsx-iscsi-secret
type: Opaque
stringData:
username: <FSx for ONTAP, for example fsxadmin>
password: <FSx for ONTAP password>
---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: fsx-iscsi
spec:
version: 1
storageDriverName: ontap-san
managementLIF: <Management DNS name>
backendName: fsx-iscsi
svm: <SVM name>
credentials:
name: backend-tbc-fsx-iscsi-secret
StorageClass definition (enregistrer sous sc-fsx-iscsi.yaml):
# sc-fsx-iscsi.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: sc-fsx-iscsi
provisioner: csi.trident.netapp.io
parameters:
backendType: "ontap-san"
media: "ssd"
provisioningType: "thin"
fsType: ext4
snapshots: "true"
allowVolumeExpansion: true
Étape 3 : Créez un fichier de configuration VolumeSnapshotClass
Créez une définition VolumeSnapshotClass pour les déploiements sur site et ROSA. Cette configuration active les opérations basées sur les instantanés pour les volumes persistants.
VolumeSnapshotClass definition (enregistrer sous snapshot-class.yaml):
# snapshot-class.yaml
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotClass
metadata:
name: trident-snapshotclass
driver: csi.trident.netapp.io
deletionPolicy: Retain
Étape 4 : Appliquez les fichiers de configuration à votre cluster
Appliquez les fichiers de configuration que vous avez créés lors des étapes précédentes à votre OpenShift cluster.
-
Appliquez les fichiers TridentBackendConfig et StorageClass pour chaque protocole que vous avez configuré.
Pour les clusters sur site :
oc create -f tbc-nas.yaml -n trident oc create -f sc-nas.yaml oc create -f tbc-nas-economy.yaml -n trident oc create -f sc-nas-economy.yaml oc create -f tbc-iscsi.yaml -n trident oc create -f sc-iscsi.yaml oc create -f tbc-nvme.yaml -n trident oc create -f sc-nvme.yaml oc create -f tbc-fc.yaml -n trident oc create -f sc-fc.yamlPour les clusters ROSA :
oc create -f tbc-fsx-nas.yaml -n trident oc create -f sc-fsx-nas.yaml oc create -f tbc-fsx-iscsi.yaml -n trident oc create -f sc-fsx-iscsi.yaml -
Appliquez la configuration VolumeSnapshotClass.
oc create -f snapshot-class.yaml -
Vérifiez que les ressources ont été créées avec succès.
Vérifiez les objets TridentBackendConfig :
oc get tbc -n tridentVérifiez les objets StorageClass :
oc get storageclassVérifiez VolumeSnapshotClass :
oc get volumesnapshotclass
Étape 5 : Définir les classes de stockage et d’instantanés Trident par défaut
Définissez la StorageClass Trident et la VolumeSnapshotClass Trident comme valeurs par défaut dans le cluster OpenShift. Ceci est nécessaire pour que la virtualisation OpenShift puisse créer des sources d’images de référence pour les modèles de machines virtuelles.
-
Définissez le Trident StorageClass par défaut.
Définissez un StorageClass pris en charge par Trident comme valeur par défaut du cluster afin que les PersistentVolumeClaims l'utilisent automatiquement lorsqu'aucune classe de stockage n'est spécifiée. Vous devez configurer deux annotations : une pour la valeur par défaut du cluster et une spécifique à la virtualisation OpenShift.
-
Définissez l'annotation StorageClass par défaut à l'échelle du cluster.
Assurez-vous qu'une seule StorageClass est définie par défaut. Si une autre StorageClass est déjà définie par défaut, définissez son annotation sur false.
Dans la console, modifiez l'annotation :
storageclass.kubernetes.io/is-default-class: "true"Depuis l'interface de ligne de commande :
kubectl patch storageclass <storage class name> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}' -
Définissez l’annotation par défaut spécifique à la virtualisation OpenShift.
OpenShift Virtualization utilise une annotation spécifique qui prime sur l' `is-default-class`annotation générale du cluster. Si une autre StorageClass est déjà définie par défaut, définissez son annotation sur false.
Dans la console, modifiez l'annotation :
storageclass.kubevirt.io/is-default-virt-class: "true"Depuis l'interface de ligne de commande :
kubectl patch storageclass <storage class name> -p '{"metadata": {"annotations":{"storageclass.kubevirt.io/is-default-virt-class": "true"}}}' -
-
Définissez la VolumeSnapshotClass Trident par défaut.
Définissez un VolumeSnapshotClass pris en charge par Trident comme valeur par défaut du cluster pour activer les opérations basées sur les instantanés pour les volumes persistants. Cela garantit que les VolumeSnapshots utilisent automatiquement le pilote CSI Trident lorsqu'aucune classe d'instantané n'est spécifiée et permet à la virtualisation OpenShift de créer des instantanés d'images de référence.
Assurez-vous qu'une seule VolumeSnapshotClass est définie par défaut. Si une autre VolumeSnapshotClass est déjà définie par défaut, définissez son annotation sur false.
Dans la console, modifiez l'annotation :
snapshot.storage.kubernetes.io/is-default-class: "true"Depuis l'interface de ligne de commande :
oc patch volumesnapshotclass <snapshot class name> --type=merge -p '{"metadata":{"annotations":{"snapshot.storage.kubernetes.io/is-default-class":"true"}}}'