Skip to main content
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.

Implementa el operador de Trident usando Helm (modo estándar)

Puedes desplegar el operador Trident e instalar Trident usando Helm. Este proceso aplica a instalaciones donde las imágenes de contenedor requeridas por Trident no se almacenan en un registro privado. Si tienes un registro de imágenes privado, usa el "proceso para el despliegue fuera de línea".

Información crítica sobre Trident 25.10

Debes leer la siguiente información crítica sobre Trident.

<strong>Información crítica sobre Trident</strong>
  • Kubernetes 1.34 ya es compatible con Trident. Actualiza Trident antes de actualizar Kubernetes.

  • Trident impone estrictamente el uso de la configuración de multivía en entornos SAN, con un valor recomendado de find_multipaths: no en el archivo multipath.conf.

    El uso de una configuración sin multivía o el uso de find_multipaths: yes o find_multipaths: smart en el archivo multipath.conf provocará fallos de montaje. Trident ha recomendado el uso de find_multipaths: no desde la versión 21.07.

Implementa el operador Trident e instala Trident usando Helm

Usando el "Helm Chart" de Trident, puedes desplegar el operador Trident e instalar Trident en un solo paso.

Revisa "la visión general de la instalación" para asegurarte de que cumpliste los requisitos previos de instalación y seleccionaste la opción de instalación correcta para tu entorno.

Antes de empezar

Además de "requisitos previos de despliegue" tú necesitas "Helm versión 3".

Pasos
  1. Agrega el repositorio Trident Helm:

    helm repo add netapp-trident https://netapp.github.io/trident-helm-chart
  2. Usa helm install y especifica un nombre para tu despliegue como en el siguiente ejemplo donde 100.2506.0 es la versión de Trident que estás instalando.

    helm install <name> netapp-trident/trident-operator --version 100.2506.0 --create-namespace --namespace <trident-namespace>
    Nota Si ya creaste un espacio de nombres para Trident, el parámetro --create-namespace no creará un espacio de nombres adicional.

Puedes usar helm list para revisar detalles de la instalación como nombre, espacio de nombres, chart, estado, versión de la app y número de revisión.

Pasa los datos de configuración durante la instalación

Hay dos formas de pasar datos de configuración durante la instalación:

Opción Descripción

--values (o -f)

Especifica un archivo YAML con anulaciones. Esto se puede especificar varias veces y el archivo más a la derecha tendrá prioridad.

--set

Especifica las modificaciones en la línea de comandos.

Por ejemplo, para cambiar el valor por defecto de debug, ejecuta el siguiente comando donde 100.2506.0 es la versión de Trident que estás instalando:

helm install <name> netapp-trident/trident-operator --version 100.2506.0  --create-namespace --namespace trident --set tridentDebug=true

Opciones de configuración

Esta tabla y el archivo values.yaml, que es parte del Helm chart, proporcionan la lista de claves y sus valores predeterminados.

Opción Descripción Predeterminado

nodeSelector

Etiquetas de nodo para la asignación de pod

podAnnotations

Anotaciones del pod

deploymentAnnotations

Anotaciones de deployment

tolerations

Tolerancias para la asignación de pods

affinity

Afinidad para la asignación de pods

affinity:
  nodeAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
      nodeSelectorTerms:
        - matchExpressions:
            - key: kubernetes.io/arch
              operator: In
              values:
              - arm64
              - amd64
            - key: kubernetes.io/os
              operator: In
              values:
              - linux
Advertencia No elimines la afinidad predeterminada del archivo values.yaml. Cuando quieras proporcionar una afinidad personalizada, amplía la afinidad predeterminada.

tridentControllerPluginNodeSelector

Selectores de nodos adicionales para pods. Consulta Entender los pods de controlador y los pods de nodo para más detalles.

tridentControllerPluginTolerations

Anula las tolerancias de Kubernetes para los pods. Consulta Entender los pods de controlador y los pods de nodo para más detalles.

tridentNodePluginNodeSelector

Selectores de nodos adicionales para pods. Consulta Entender los pods de controlador y los pods de nodo para más detalles.

tridentNodePluginTolerations

Anula las tolerancias de Kubernetes para los pods. Consulta Entender los pods de controlador y los pods de nodo para más detalles.

imageRegistry

Identifica el registro para el trident-operator, trident y otras imágenes. Déjalo vacío para aceptar el valor predeterminado. IMPORTANTE: cuando instales Trident en un repositorio privado, si usas el switch imageRegistry para especificar la ubicación del repositorio, no uses /netapp/ en la ruta del repositorio.

""

imagePullPolicy

Establece la política de extracción de imágenes para el trident-operator.

IfNotPresent

imagePullSecrets

Establece los secretos de extracción de imágenes para las trident-operator, trident y otras imágenes.

kubeletDir

Permite anular la ubicación del host del estado interno de kubelet.

"/var/lib/kubelet"

operatorLogLevel

Permite establecer el nivel de registro del operador Trident en: trace, debug, info, warn, error o fatal.

"info"

operatorDebug

Permite establecer el nivel de registro del operador Trident en modo debug.

true

operatorImage

Permite la anulación completa de la imagen para trident-operator.

""

operatorImageTag

Permite anular la etiqueta de la trident-operator imagen.

""

tridentIPv6

Permite habilitar Trident para trabajar en clústeres IPv6.

false

tridentK8sTimeout

Anula el tiempo de espera predeterminado de 30 segundos para la mayoría de las operaciones de la API de Kubernetes (si no es cero, en segundos).

0

tridentHttpRequestTimeout

Anula el tiempo de espera predeterminado de 90 segundos para las solicitudes HTTP, con 0s siendo una duración infinita para el tiempo de espera. No se permiten valores negativos.

"90s"

tridentSilenceAutosupport

Permite deshabilitar los informes periódicos de AutoSupport de Trident.

false

tridentAutosupportImageTag

Permite sobrescribir la etiqueta de la imagen para el contenedor Trident AutoSupport.

<version>

tridentAutosupportProxy

Permite que el contenedor Trident AutoSupport se comunique con la central a través de un proxy HTTP.

""

tridentLogFormat

Establece el formato de registro de Trident (text o json).

"text"

tridentDisableAuditLog

Desactiva el auditor de registros de Trident.

true

tridentLogLevel

Permite establecer el nivel de registro de Trident en: trace, debug, info, warn, error o fatal.

"info"

tridentDebug

Permite establecer el nivel de registro de Trident en debug. Puedes automatizar el proceso de desinstalación forzosa mediante la integración con el operador node health check (NHC). Para más información, consulta "Automatizando la conmutación por error de aplicaciones con estado con Trident".

false

tridentLogWorkflows

Permite habilitar flujos de trabajo específicos de Trident para el registro de trazas o la supresión de logs.

""

tridentLogLayers

Permite habilitar capas específicas de Trident para el registro de trazas o la supresión de logs.

""

tridentImage

Permite la anulación completa de la imagen para Trident.

""

tridentImageTag

Permite anular la etiqueta de la imagen para Trident.

""

tridentProbePort

Permite anular el puerto predeterminado usado para las sondas de liveness/readiness de Kubernetes.

""

windows

Permite que Trident se instale en el nodo trabajador de Windows.

false

enableForceDetach

Permite activar la función de desconexión forzosa.

false

excludePodSecurityPolicy

Excluye la política de seguridad del pod de operador de la creación.

false

cloudProvider

Establécelo en "Azure" cuando uses identidades gestionadas o una identidad en la nube en un clúster AKS. Establécelo en "AWS" cuando uses una identidad en la nube en un clúster EKS.

""

cloudIdentity

Configura la identidad de carga de trabajo ("azure.workload.identity/client-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx") cuando uses cloud identity en un clúster AKS. Configura el rol de AWS IAM ("'eks.amazonaws.com/role-arn: arn:aws:iam::123456:role/trident-role'") cuando uses cloud identity en un clúster EKS.

""

iscsiSelfHealingInterval

El intervalo en el que se invoca la reparación automática de iSCSI.

5m0s

iscsiSelfHealingWaitTime

La duración después de la cual la reparación automática iSCSI inicia un intento de resolver una sesión obsoleta realizando un cierre de sesión y un inicio de sesión posterior.

7m0s

nodePrep

Permite que Trident prepare los nodos del clúster de Kubernetes para gestionar volúmenes usando el protocolo de almacenamiento de datos especificado. Actualmente, iscsi es el único valor admitido. Nota: a partir de OpenShift 4.19, la versión mínima de Trident admitida para esta función es 25.06.1.

enableConcurrency

Permite operaciones simultáneas del controlador Trident para mejorar el rendimiento.

Nota Tech Preview: Esta función es experimental y actualmente admite flujos de trabajo paralelos limitados con los controladores ONTAP-NAS (NFS solo) y ONTAP-SAN (NVMe para unified ONTAP 9), además de la tech preview existente para el controlador ONTAP-SAN (protocolos iSCSI y FCP en unified ONTAP 9).

false

k8sAPIQPS

El límite de consultas por segundo (QPS) que usa el controlador mientras se comunica con el servidor de la API de Kubernetes. El valor de ráfaga se establece automáticamente según el valor de QPS.

100; opcional

resources

Establece los límites y las solicitudes de recursos de Kubernetes para los pods del controlador, nodo y operador de Trident. Puedes configurar la CPU y la memoria de cada contenedor y sidecar para gestionar la asignación de recursos en Kubernetes.

Para obtener más información sobre cómo configurar las solicitudes y los límites de recursos, consulta "Gestión de recursos para pods y contenedores".

Advertencia
  • NO cambies los nombres de ningún contenedor ni de ningún campo.

  • NO cambies la sangría: la sangría de YAML es fundamental para que se analice correctamente.

Nota
  • No se aplican límites por defecto: solo las solicitudes tienen valores por defecto y se aplican automáticamente si no se especifican.

  • Los nombres de los contenedores figuran tal como aparecen en las especificaciones del pod.

  • Los sidecars aparecen debajo de cada contenedor principal.

  • Revisa el campo status.CurrentInstallationParams del TORC para ver los valores que están aplicados ahora.

resources:
  controller:
    trident-main:
      requests:
        cpu: 10m
        memory: 80Mi
      limits:
          cpu:
          memory:
    csi-provisioner:
      requests:
        cpu: 2m
        memory: 20Mi
      limits:
        cpu:
        memory:
    csi-attacher:
      requests:
        cpu: 2m
        memory: 20Mi
      limits:
        cpu:
        memory:
    csi-resizer:
      requests:
        cpu: 3m
        memory: 20Mi
      limits:
        cpu:
        memory:
    csi-snapshotter:
      requests:
        cpu: 2m
        memory: 20Mi
      limits:
        cpu:
        memory:
    trident-autosupport:
      requests:
        cpu: 1m
        memory: 30Mi
      limits:
        cpu:
        memory:
  node:
    linux:
      trident-main:
        requests:
          cpu: 10m
          memory: 60Mi
        limits:
          cpu:
          memory:
      node-driver-registrar:
        requests:
          cpu: 1m
          memory: 10Mi
        limits:
          cpu:
          memory:
    windows:
      trident-main:
        requests:
          cpu: 6m
          memory: 40Mi
        limits:
          cpu:
          memory:
      node-driver-registrar:
        requests:
          cpu: 6m
          memory: 40Mi
        limits:
          cpu:
          memory:
      liveness-probe:
        requests:
          cpu: 2m
          memory: 40Mi
        limits:
          cpu:
          memory:
  operator:
    requests:
      cpu: 10m
      memory: 40Mi
    limits:
      cpu:
      memory:

httpsMetrics

Habilita HTTPS para el endpoint de métricas de Prometheus.

false

hostNetwork

Habilita la conexión en red del host para el controlador Trident. Esto es útil cuando quieres separar el tráfico de frontend y backend en una red multi-home.

false

Entender los pods de controlador y los pods de nodo

Trident se ejecuta como un pod controlador único, más un pod de nodo en cada nodo trabajador del clúster. El pod de nodo debe estar ejecutándose en cualquier host donde quieras montar potencialmente un volumen Trident.

Kubernetes "selectores de nodos" y "tolerancias y taints" se usan para restringir que un pod se ejecute en un nodo específico o preferido. Usando ControllerPlugin y NodePlugin, puedes especificar restricciones y anulaciones.

  • El complemento del controlador se encarga del aprovisionamiento y la gestión de volúmenes, como las instantáneas y el cambio de tamaño.

  • El plugin de nodo se encarga de conectar el almacenamiento al nodo.