Instala Trident en un clúster Red Hat OpenShift y crea objetos de almacenamiento
Instala Trident con Red Hat Certified Trident Operator y crea objetos de almacenamiento para ONTAP y Amazon FSx for NetApp ONTAP para habilitar el aprovisionamiento dinámico de volúmenes para contenedores y VMs. Prepara los nodos trabajadores para el acceso a bloques cuando sea necesario.
-
Completa los procedimientos en esta página antes de instalar OpenShift Virtualization. OpenShift Virtualization requiere un StorageClass respaldado por Trident por defecto y un VolumeSnapshotClass para crear imágenes golden para plantillas de máquinas virtuales.
-
Si ya instalaste OpenShift Virtualization antes de configurar Trident, elimina cualquier imagen golden creada con una clase de almacenamiento diferente. Después de que configures Trident como predeterminado, OpenShift Virtualization vuelve a crear las imágenes golden usando el almacenamiento de Trident.
oc delete dv,VolumeSnapshot -n openshift-virtualization-os-images --selector=cdi.kubevirt.io/dataImportCron
Paso 1: instalar Trident
El Red Hat Certified Trident Operator es compatible con NetApp para OpenShift en las instalaciones, en nubes públicas y en servicios gestionados como ROSA. A partir de Trident 25.02, el operador también puede preparar nodos de trabajo para iSCSI cuando usas Amazon FSx for NetApp ONTAP y planeas ejecutar cargas de trabajo de VM de virtualización de OpenShift.
Para otras opciones de instalación, mira "la documentación de Trident".
-
En OperatorHub, selecciona Certified NetApp Trident.
Mostrar ejemplo

-
En la página Instalar, mantén la última versión y selecciona Instalar.
Mostrar ejemplo

-
Después de que el operador se instale, selecciona View operator y crea una instancia de Trident Orchestrator.
Si quieres preparar los nodos trabajadores para iSCSI, cambia a la vista YAML y añade
iscsianodePrep.Mostrar ejemplo

-
Confirma que todos los pods Trident están en ejecución en el clúster.
Mostrar ejemplo

-
Si activaste la preparación de nodos iSCSI, inicia sesión en los nodos trabajadores y verifica que
iscsidymultipathdestén activos y quemultipath.conftenga entradas.Mostrar ejemplo

Mostrar ejemplo

Mostrar ejemplo

El siguiente vídeo muestra una demostración de cómo instalar Trident usando el Red Hat Certified Trident Operator.
Paso 2: prepara el backend de almacenamiento y los archivos de configuración de StorageClass para tu entorno
Crea definiciones de TridentBackendConfig y StorageClass para tu entorno. Puedes configurar varios protocolos de almacenamiento dentro de tu entorno. Crea archivos YAML para cada protocolo que quieras usar y reemplaza los valores de los marcadores de posición por los detalles específicos de tu configuración.
|
|
Completa la sección local o ROSA según tu entorno y luego sigue con el paso 3. |
Clústeres on-premises OpenShift
Crea archivos YAML para cada protocolo que quieras configurar. Puedes configurar uno o más de los siguientes protocolos: NAS para almacenamiento de archivos basado en NFS, iSCSI para almacenamiento de bloques iSCSI, NVMe/TCP para almacenamiento de bloques NVMe sobre TCP de alto rendimiento o FC para almacenamiento de bloques Fibre Channel.
Crea un TridentBackendConfig y un StorageClass para ONTAP NAS para habilitar el aprovisionamiento de almacenamiento persistente basado en NFS. La configuración del backend incluye credenciales almacenadas en un Kubernetes Secret y hace referencia a tu SVM de ONTAP y a tu LIF de gestión.
Secreto de backend y archivo de configuración de backend (guarda como 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
Definición de StorageClass (guarda como 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
Crea un TridentBackendConfig y un StorageClass para ONTAP SAN para habilitar el aprovisionamiento de almacenamiento en bloques basado en iSCSI. La configuración del backend usa el controlador ontap-san e incluye credenciales almacenadas en un Kubernetes Secret.
Secreto de backend y archivo de configuración de backend (guarda como 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
Definición de StorageClass (guarda como 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
Crea un TridentBackendConfig y un StorageClass para ONTAP SAN con NVMe sobre TCP para habilitar el aprovisionamiento de almacenamiento en bloque de alto rendimiento. La configuración del backend usa el controlador ontap-san optimizado para el transporte NVMe/TCP e incluye credenciales almacenadas en un Kubernetes Secret.
Secreto de backend y archivo de configuración de backend (guardar como 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
Definición de StorageClass (guarda como 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
Crea un TridentBackendConfig y un StorageClass para ONTAP SAN con Fibre Channel para habilitar el aprovisionamiento de almacenamiento en bloques basado en FC. La configuración del backend usa el controlador ontap-san con el protocolo FCP especificado e incluye credenciales almacenadas en un Kubernetes Secret.
Secreto de backend y archivo de configuración de backend (guárdalo como 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
Definición de StorageClass (guardar como sc-fc.yaml):
# 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
Clústeres ROSA con Amazon FSx for NetApp ONTAP
Crea archivos YAML para cada protocolo que quieras configurar. Puedes configurar uno o ambos de los siguientes protocolos: NAS para almacenamiento de archivos basado en NFS o iSCSI para almacenamiento en bloques.
Crea un TridentBackendConfig y un StorageClass para Amazon FSx for NetApp ONTAP con ONTAP NAS para habilitar el aprovisionamiento de almacenamiento persistente basado en NFS en clústeres ROSA. La configuración del backend usa los nombres DNS de Amazon FSx for NetApp ONTAP para la gestión y los LIF de datos, e incluye credenciales almacenadas en un Secret de Kubernetes en el namespace de trident.
Secreto de backend y archivo de configuración de backend (guarda como 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 definición (guarda como 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
Crea un TridentBackendConfig y un StorageClass para Amazon FSx for NetApp ONTAP con ONTAP SAN para habilitar el aprovisionamiento de almacenamiento en bloques basado en iSCSI en clústeres ROSA. La configuración del backend usa el controlador ontap-san e incluye credenciales almacenadas en un Kubernetes Secret. Asegúrate de que los nodos worker estén preparados para el acceso a iSCSI.
Secreto de backend y archivo de configuración de backend (guárdalo como 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 definición (guarda como 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
Paso 3: crea un archivo de configuración VolumeSnapshotClass
Crea una definición de VolumeSnapshotClass tanto para implementaciones locales como para ROSA. Esta configuración permite operaciones basadas en instantáneas para volúmenes persistentes.
Definición de VolumeSnapshotClass (guarda como 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
Paso 4: aplica los archivos de configuración a tu clúster
Aplica los archivos de configuración que creaste en los pasos anteriores a tu clúster OpenShift.
-
Aplica los archivos TridentBackendConfig y StorageClass para cada protocolo que configuraste.
Para clústeres locales:
oc create -f tbc-nas.yaml -n trident oc create -f sc-nas.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.yamlPara los clústeres 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 -
Aplica la configuración de VolumeSnapshotClass.
oc create -f snapshot-class.yaml -
Verifica que los recursos se hayan creado correctamente.
Revisa los objetos TridentBackendConfig:
oc get tbc -n tridentComprueba los objetos de StorageClass:
oc get storageclassRevisa VolumeSnapshotClass:
oc get volumesnapshotclass
Paso 5: establece las clases predeterminadas de almacenamiento e instantáneas de Trident
Configura Trident StorageClass y VolumeSnapshotClass como los predeterminados en el clúster OpenShift. Esto es necesario para que OpenShift Virtualization cree fuentes de imágenes doradas para plantillas de máquinas virtuales.
-
Configura el StorageClass predeterminado de Trident.
Configura un StorageClass respaldado por Trident como predeterminado del clúster para que las PersistentVolumeClaims lo usen automáticamente cuando no se especifique ninguna clase de almacenamiento. Necesitas configurar dos anotaciones: una para el valor predeterminado de todo el clúster y otra específica para OpenShift Virtualization.
-
Establece la anotación predeterminada de StorageClass para todo el clúster.
Asegúrate de que solo un StorageClass esté configurado como predeterminado. Si otro StorageClass ya está configurado como predeterminado, pon su anotación en false.
En la consola, edita la anotación:
storageclass.kubernetes.io/is-default-class: "true"Desde la CLI:
kubectl patch storageclass <storage class name> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}' -
Establece la anotación predeterminada específica de OpenShift Virtualization.
OpenShift Virtualization utiliza una anotación específica que tiene prioridad sobre la anotación general del clúster
is-default-class. Si otro StorageClass ya está configurado como predeterminado, pon su anotación en false.En la consola, edita la anotación:
storageclass.kubevirt.io/is-default-virt-class: "true"Desde la CLI:
kubectl patch storageclass <storage class name> -p '{"metadata": {"annotations":{"storageclass.kubevirt.io/is-default-virt-class": "true"}}}' -
-
Establece el Trident VolumeSnapshotClass predeterminado.
Establece un VolumeSnapshotClass respaldado por Trident como el predeterminado del clúster para habilitar operaciones basadas en instantáneas para volúmenes persistentes. Esto asegura que VolumeSnapshots use automáticamente el controlador CSI de Trident cuando no se especifica ninguna clase de instantánea y permite que OpenShift Virtualization cree instantáneas de imágenes doradas.
Asegúrate de que solo un VolumeSnapshotClass esté configurado como predeterminado. Si ya hay otro VolumeSnapshotClass configurado como predeterminado, pon su anotación en false.
En la consola, edita la anotación:
snapshot.storage.kubernetes.io/is-default-class: "true"Desde la CLI:
oc patch volumesnapshotclass <snapshot class name> --type=merge -p '{"metadata":{"annotations":{"snapshot.storage.kubernetes.io/is-default-class":"true"}}}'