Skip to main content
NetApp virtualization solutions
Se proporciona el idioma español mediante traducción automática para su comodidad. En caso de alguna inconsistencia, el inglés precede al español.

Instala Trident en un clúster Red Hat OpenShift y crea objetos de almacenamiento

Colaboradores banum-netapp netapp-jsnyder kevin-hoke

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.

Antes de empezar
  • 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".

Pasos
  1. En OperatorHub, selecciona Certified NetApp Trident.

    Mostrar ejemplo

    centro de operadores

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

    Mostrar ejemplo

    instalar

  3. 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 iscsi a nodePrep.

    Mostrar ejemplo

    Agregar iscsi para la preparación del nodo

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

    Mostrar ejemplo

    Trident instalado

  5. Si activaste la preparación de nodos iSCSI, inicia sesión en los nodos trabajadores y verifica que iscsid y multipathd estén activos y que multipath.conf tenga entradas.

    Mostrar ejemplo

    iscsid en ejecución

    Mostrar ejemplo

    multipathd en ejecución

    Mostrar ejemplo

    archivo multipath.conf en ejecución

Demostración en video

El siguiente vídeo muestra una demostración de cómo instalar Trident usando el Red Hat Certified Trident Operator.

Instalación de Trident 25.02.1 utilizando el operador Trident certificado en OpenShift

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.

Nota 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 cada protocolo. La configuración del backend incluye credenciales almacenadas en un secreto de Kubernetes.

Pautas esenciales para las opciones básicas de configuración del backend
  1. Los archivos de configuración del backend hacen referencia a tu ONTAP SVM y a tu LIF de gestión. +

  2. Puedes utilizar nombre de usuario y contraseña para autenticarte en ONTAP. Pueden ser el nombre de usuario y la contraseña del administrador del clúster o del administrador del vserver. +

  3. También puedes usar un certificado de cliente para la autenticación con ONTAP. Para detalles sobre cómo generar el certificado de cliente, la clave privada y el certificado de la CA, revisa "Documentación de Trident aquí".

Pautas esenciales para las opciones de configuración del backend para el controlador economy de NAS

Se pueden incluir los siguientes parámetros para la configuración del NAS economy driver:

  1. qtreesPerFlexvol El valor debe estar en el rango de 50 a 300, el valor predeterminado es 200. +

  2. limitVolumePoolSize El valor es el tamaño máximo de FlexVol que solicitas cuando usas qtrees en el backend ontap-nas-economy. No se establece ningún valor predeterminado y este parámetro no se aplica por defecto. Si configuras este parámetro, el operador Trident crea un nuevo FlexVol cuando el FlexVol actual alcanza el tamaño especificado. Este parámetro puede ayudarte a controlar el uso de la capacidad en tu clúster al restringir el tamaño de los FlexVols usados para el aprovisionamiento de PVs. +

  3. denyNewVolumePools Este parámetro impide que los backends de ontap-nas-economy creen nuevos volúmenes FlexVol para alojar sus qtrees. Solo se utilizan los FlexVol ya existentes para el aprovisionamiento de nuevos PV.

Directrices esenciales para las opciones de configuración del backend para el controlador SAN

Se pueden incluir los siguientes parámetros para la configuración del controlador SAN:

  1. limitVolumeSize El valor es el tamaño máximo de volumen que solicitas cuando usas un backend SAN. No se establece ningún valor predeterminado y este parámetro no se aplica por defecto. Si configuras este parámetro, el operador de Trident falla el aprovisionamiento si el tamaño de volumen solicitado supera este valor. Puedes usar este parámetro para restringir el tamaño máximo de los volúmenes que gestiona para LUN. +

  2. lunsPerFlexvol Número máximo de LUN por FlexVol, debe estar en el rango [50, 200], el valor predeterminado es 100. Si configuras este parámetro, el operador de Trident crea un nuevo FlexVol cuando el FlexVol actual alcanza el número especificado de LUN. Este parámetro puede ayudarte a controlar el uso de la capacidad en tu clúster al restringir el número de LUN por FlexVol usado para el aprovisionamiento de PV.

Directrices esenciales para las opciones de configuración del backend para el controlador SAN economy

Se pueden incluir los siguientes parámetros para la configuración del SAN economy driver:

  1. limitVolumePoolSize El valor es el tamaño máximo de FlexVol que solicitas cuando usas el backend SAN economy. No se establece ningún valor predeterminado y este parámetro no se aplica por defecto. Si configuras este parámetro, el operador de Trident limita el tamaño máximo de flexvol que se puede crear para crear LUNs en el flexvol. Este parámetro puede ayudarte a controlar el uso de la capacidad en tu clúster al restringir el tamaño de los FlexVols usados para el aprovisionamiento de PVs. +

  2. denyNewVolumePools Este parámetro impide que los backends económicos de SAN creen nuevos volúmenes FlexVol para alojar sus LUN. Solo se utilizan los FlexVol ya existentes para el aprovisionamiento de nuevos PV.

Directrices esenciales para las opciones de configuración del backend para el aprovisionamiento de volúmenes
Nota En los archivos yaml de ejemplo proporcionados para cada protocolo, si no se proporciona storagePrefix, se utiliza el prefijo predeterminado “trident”. Cuando usas ontap-nas-economy y un storagePrefix de 24 caracteres o más, los qtrees no tendrán el prefijo de almacenamiento incluido, aunque sí estará en el nombre del volumen.

Cuando creas un volumen en ONTAP directamente desde system manager o desde la CLI, sin proporcionar valores para todos los parámetros opcionales, se establecen automáticamente algunos valores predeterminados durante el aprovisionamiento de un volumen, como se muestra a continuación.

Crear volumen en ONTAP

valores predeterminados para los parámetros de volumen

A continuación se muestra un ejemplo de un volumen creado mediante la configuración del backend Trident. No tiene ninguna opción configurada explícitamente en la sección defaults, salvo la plantilla de nombre.

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

Cuando se crea el volumen utilizando esta configuración del backend, las opciones que no se hayan establecido en el archivo de configuración del backend se fijan en los valores por defecto como se muestra a continuación.

Volumen creado mediante la configuración del backend de Trident

Sin embargo, cuando estableces valores en la sección default en la configuración del backend de Trident, puedes crear volúmenes que pueden tener valores específicos para esos parámetros. En el siguiente ejemplo, snapshotPolicy se establece en default policy (es none si no configuras nada explícitamente) y snapshotDir se establece en true en la sección default del archivo de configuración yaml del backend. Con esta configuración, puedes ver que el volumen del backend obtiene esos valores. (snapdir-access es true y snapshot-policy es default)

sección predeterminada con valores explícitos

establece explícitamente los valores de snapshotDir y snapshotPolicy en la configuración del backend

establece explícitamente los valores de snapshotDir y snapshotPolicy en el volumen

Para el resto de parámetros adicionales, consulta la documentación de Trident:

NAS

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.

Ejemplo de secreto de backend y archivo de configuración de backend con autenticación mediante nombre de usuario y contraseña (guardar 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

Ejemplo de secreto de backend y archivo de configuración de backend con autenticación mediante certificado de cliente (guardar como 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>

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
NAS economy

Crea un TridentBackendConfig y un StorageClass para el controlador ONTAP NAS economy, con el fin de habilitar el aprovisionamiento de almacenamiento persistente basado en NFS mediante qtrees. La configuración del backend incluye credenciales almacenadas en un Kubernetes Secret y hace referencia a tu ONTAP SVM y a tu LIF de gestión.

Ejemplo de secreto de backend y archivo de configuración de backend con autenticación mediante nombre de usuario y contraseña (guardar como 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 definición (guarda como 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
Nota Consulta las directrices esenciales para las opciones de configuración del backend del controlador NAS economy en la sección de arriba para ver detalles sobre los parámetros adicionales que puedes incluir en el archivo de configuración del backend para el controlador ontap-nas-economy.
SAN iSCSI

Crea un TridentBackendConfig y un StorageClass para ONTAP SAN con iSCSI para habilitar el aprovisionamiento de almacenamiento en bloques basado en iSCSI. La configuración del backend utiliza el controlador ontap-san e incluye credenciales almacenadas en un secreto de Kubernetes. El parámetro sanType usa por defecto el protocolo iSCSI si se omite.

Secreto del backend y archivo de configuración del backend con autenticación mediante nombre de usuario y contraseña (guardar 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

Secreto del backend y archivo de configuración del backend usando autenticación mediante certificado de cliente (guardar como 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>

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
NVMe/TCP SAN

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 del backend y archivo de configuración del backend con autenticación mediante nombre de usuario y contraseña (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

Secreto del backend y archivo de configuración del backend usando autenticación mediante certificado de cliente (guardar como 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>

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
Nota Si planeas usar volúmenes ReadWriteMany (RWX) con el protocolo NVMe, un solo volumen NVMe RWX no puede montarse por más de 64 nodos en un clúster de Kubernetes. Para más información sobre esta limitación y sobre el modelo de supersubsistema introducido en Trident 26.02 y el modelo de subsistema por volumen anterior a Trident 26.02, consulta la documentación de Trident: https://docs.netapp.com/us-en/trident/trident-use/ontap-san-prep.html#nvme-tcp-considerations.
FC SAN

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.

Utiliza el método de autenticación con nombre de usuario y contraseña o el método de autenticación con certificado de cliente para autenticarte con ONTAP. Para ver detalles sobre cómo generar el certificado de cliente, la clave privada y el certificado de la CA, revisa "Documentación de Trident aquí". Aquí tienes ejemplos para ambos métodos.

Mostrar ejemplo

Secreto del backend y archivo de configuración del backend con autenticación mediante nombre de usuario y contraseña de ONTAP (guardar 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

Secreto del backend y archivo de configuración del backend usando autenticación mediante certificado de cliente (guardar como 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
Economía de SAN iSCSI

Crea un TridentBackendConfig y un StorageClass para ONTAP SAN economy con iSCSI para habilitar el aprovisionamiento de almacenamiento en bloques basado en iSCSI. La configuración del backend utiliza el controlador ontap-san-economy con el protocolo iSCSI e incluye credenciales almacenadas en un secreto de Kubernetes.

Secreto del backend y archivo de configuración del backend con autenticación mediante certificado de cliente (guardar como 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"

Consulta la documentación de Trident para ver más ejemplos de archivos yaml e información sobre los modos de acceso y los modos de volumen compatibles con los controladores SAN y NAS.

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.

NAS

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
iSCSI

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.

Pasos
  1. 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-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.yaml

    Para 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
  2. Aplica la configuración de VolumeSnapshotClass.

    oc create -f snapshot-class.yaml
  3. Verifica que los recursos se hayan creado correctamente.

    Revisa los objetos TridentBackendConfig:

    oc get tbc -n trident

    Comprueba los objetos de StorageClass:

    oc get storageclass

    Revisa 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.

Pasos
  1. 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.

    1. 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"}}}'
    2. 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"}}}'
  2. 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"}}}'