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.

Personaliza la instalación del operador Trident

El operador Trident te permite personalizar la instalación de Trident usando los atributos en la `TridentOrchestrator`spec. Si quieres personalizar la instalación más allá de lo que permiten los `TridentOrchestrator`arguments, considera usar `tridentctl`para generar manifiestos YAML personalizados y modificarlos como necesites.

Entender los pods de controlador y los pods de nodo

Trident se ejecuta como un único pod de controlador y un pod de nodo en cada nodo de trabajo del clúster. El pod de nodo debe estar ejecutándose en cualquier host donde quieras montar 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.

Opciones de configuración

Advertencia spec.namespace se especifica en TridentOrchestrator para indicar el namespace donde está instalado Trident. Este parámetro no se puede actualizar después de instalar Trident. Si intentas hacerlo, el estado de TridentOrchestrator cambia a Failed. Trident no está pensado para migrarse entre namespaces.

Esta tabla detalla TridentOrchestrator los atributos.

Parámetro Descripción Predeterminado

namespace

Espacio de nombres para instalar Trident

"default"

debug

Habilita la depuración para Trident

false

enableForceDetach

ontap-san, ontap-san-economy, ontap-nas y ontap-nas-economy solamente. Funciona con Kubernetes Non-Graceful Node Shutdown (NGNS) para que los administradores de clúster tengan la capacidad de migrar de forma segura cargas de trabajo con volúmenes montados a nuevos nodos si un nodo deja de estar saludable. Para información, consulta "Automatizando la conmutación por error de aplicaciones con estado con Trident".

false

windows

La configuración de true permite la instalación en nodos worker de Windows.

false

cloudProvider

Configúralo en "Azure" cuando uses identidades administradas o una identidad en la nube en un clúster de AKS. Configúralo en "AWS" cuando uses una identidad en la nube en un clúster de EKS. Configúralo en "GCP" cuando uses una identidad en la nube en un clúster de GKE.

""

cloudIdentity

Configura la workload identity ("azure.workload.identity/client-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx") cuando uses cloud identity en un clúster de AKS. Configura el AWS IAM role ("'eks.amazonaws.com/role-arn: arn:aws:iam::123456:role/trident-role'") cuando uses cloud identity en un clúster de EKS. Configura la cloud identity ("'iam.gke.io/gcp-service-account: xxxx@mygcpproject.iam.gserviceaccount.com'") cuando uses cloud identity en un clúster de GKE.

""

IPv6

Instala Trident sobre IPv6

false

k8sTimeout

Tiempo de espera para las operaciones de Kubernetes.

Nota El `k8sTimeout`parámetro solo es aplicable para la instalación de Trident.

180sec

silenceAutosupport

No envíes paquetes de autosupport a NetApp automáticamente

false

autosupportImage

La imagen del contenedor para Autosupport Telemetry

"netapp/trident-autosupport10"

autosupportProxy

La dirección/puerto de un proxy para enviar Autosupport Telemetry

"http://proxy.example.com:8888"

uninstall

Una bandera usada para desinstalar Trident

false

logFormat

Formato de registro de Trident que se usará [text,json]

"text"

tridentImage

Imagen de Trident para instalar

"netapp/trident:25.10"

imageRegistry

Ruta al registro interno, de formato
<registry FQDN>[:port][/subpath]

"registry.k8s.io"

kubeletDir

Ruta al directorio de kubelet en el host

"/var/lib/kubelet"

wipeout

Una lista de recursos para eliminar y así realizar una eliminación completa de Trident

imagePullSecrets

Secretos para extraer imágenes de un registro interno

imagePullPolicy

Establece la política de extracción de imágenes para el operador Trident. Los valores válidos son:
Always para extraer siempre la imagen.
IfNotPresent para extraer la imagen solo si no existe en el nodo.
Never para nunca extraer la imagen.

IfNotPresent

controllerPluginNodeSelector

Selectores de nodos adicionales para pods. Sigue el mismo formato que pod.spec.nodeSelector.

Sin valor predeterminado; opcional

controllerPluginTolerations

Anula las tolerancias de Kubernetes para los pods. Sigue el mismo formato que pod.spec.Tolerations.

Sin valor predeterminado; opcional

nodePluginNodeSelector

Selectores de nodos adicionales para pods. Sigue el mismo formato que pod.spec.nodeSelector.

Sin valor predeterminado; opcional

nodePluginTolerations

Anula las tolerancias de Kubernetes para los pods. Sigue el mismo formato que pod.spec.Tolerations.

Sin valor predeterminado; opcional

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 compatible con esta función es 25.06.1.

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

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

resources

Establece los límites y las solicitudes de recursos de Kubernetes para el controlador Trident y los pods de nodo. 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:

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

Nota Para más información sobre cómo formatear los parámetros del pod, consulta "Asignar pods a nodos".

Configuraciones de ejemplo

Puedes usar los atributos en Opciones de configuración cuando defines TridentOrchestrator para personalizar tu instalación.

Configuración básica personalizada

Este ejemplo, creado después de ejecutar el cat deploy/crds/tridentorchestrator_cr_imagepullsecrets.yaml comando, representa una instalación personalizada básica:

apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  imagePullSecrets:
  - thisisasecret
Selectores de nodos

Este ejemplo instala Trident con selectores de nodos.

apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  controllerPluginNodeSelector:
    nodetype: master
  nodePluginNodeSelector:
    storage: netapp
Nodos trabajadores de Windows

Este ejemplo, creado después de ejecutar el cat deploy/crds/tridentorchestrator_cr.yaml comando, instala Trident en un nodo trabajador Windows.

apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  windows: true
Identidades gestionadas en un clúster de AKS

Este ejemplo instala Trident para habilitar identidades gestionadas en un clúster de AKS.

apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  cloudProvider: "Azure"
Identidad en la nube en un clúster AKS

Este ejemplo instala Trident para usarlo con una identidad en la nube en un clúster AKS.

apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  cloudProvider: "Azure"
  cloudIdentity: 'azure.workload.identity/client-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx'
Cloud identity en un clúster EKS

Este ejemplo instala Trident para usarlo con una identidad en la nube en un clúster AKS.

apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  cloudProvider: "AWS"
  cloudIdentity: "'eks.amazonaws.com/role-arn: arn:aws:iam::123456:role/trident-role'"
Identidad cloud para GKE

Este ejemplo instala Trident para usarlo con una identidad en la nube en un clúster GKE.

apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
  name: backend-tbc-gcp-gcnv
spec:
  version: 1
  storageDriverName: google-cloud-netapp-volumes
  projectNumber: '012345678901'
  network: gcnv-network
  location: us-west2
  serviceLevel: Premium
  storagePool: pool-premium1
Configuración de solicitudes y límites de recursos de Kubernetes para el controlador Trident y los pods de nodos Linux Trident

Este ejemplo configura las solicitudes y los límites de recursos de Kubernetes para el controlador Trident y los pods de nodo Linux Trident.

Advertencia Descargo de responsabilidad: Los valores de solicitud y límite proporcionados en este ejemplo son solo para fines de demostración. Ajusta estos valores según tu entorno y los requisitos de carga de trabajo.
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  imagePullSecrets:
  - thisisasecret
  resources:
    controller:
      trident-main:
        requests:
          cpu: 10m
          memory: 80Mi
        limits:
          cpu: 200m
          memory: 256Mi
      # sidecars
      csi-provisioner:
        requests:
          cpu: 2m
          memory: 20Mi
        limits:
          cpu: 100m
          memory: 64Mi
      csi-attacher:
        requests:
          cpu: 2m
          memory: 20Mi
        limits:
          cpu: 100m
          memory: 64Mi
      csi-resizer:
        requests:
          cpu: 3m
          memory: 20Mi
        limits:
          cpu: 100m
          memory: 64Mi
      csi-snapshotter:
        requests:
          cpu: 2m
          memory: 20Mi
        limits:
          cpu: 100m
          memory: 64Mi
      trident-autosupport:
        requests:
          cpu: 1m
          memory: 30Mi
        limits:
          cpu: 50m
          memory: 128Mi
    node:
      linux:
        trident-main:
          requests:
            cpu: 10m
            memory: 60Mi
          limits:
            cpu: 200m
            memory: 256Mi
        # sidecars
        node-driver-registrar:
          requests:
            cpu: 1m
            memory: 10Mi
          limits:
            cpu: 50m
            memory: 32Mi
Configuración de solicitudes y límites de recursos de Kubernetes para el controlador Trident y los pods de nodo Trident Windows y Linux

Este ejemplo configura las solicitudes y los límites de recursos de Kubernetes para el controlador Trident y los pods de nodo Trident Windows y Linux.

Advertencia Descargo de responsabilidad: Los valores de solicitud y límite proporcionados en este ejemplo son solo para fines de demostración. Ajusta estos valores según tu entorno y los requisitos de carga de trabajo.
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  imagePullSecrets:
  - thisisasecret
  windows: true
  resources:
    controller:
      trident-main:
        requests:
          cpu: 10m
          memory: 80Mi
        limits:
          cpu: 200m
          memory: 256Mi
        # sidecars
      csi-provisioner:
        requests:
          cpu: 2m
          memory: 20Mi
        limits:
          cpu: 100m
          memory: 64Mi
      csi-attacher:
        requests:
          cpu: 2m
          memory: 20Mi
        limits:
          cpu: 100m
          memory: 64Mi
      csi-resizer:
        requests:
          cpu: 3m
          memory: 20Mi
        limits:
          cpu: 100m
          memory: 64Mi
      csi-snapshotter:
        requests:
          cpu: 2m
          memory: 20Mi
        limits:
          cpu: 100m
          memory: 64Mi
      trident-autosupport:
        requests:
          cpu: 1m
          memory: 30Mi
        limits:
          cpu: 50m
          memory: 128Mi
    node:
      linux:
        trident-main:
          requests:
            cpu: 10m
            memory: 60Mi
          limits:
            cpu: 200m
            memory: 256Mi
        # sidecars
        node-driver-registrar:
          requests:
            cpu: 1m
            memory: 10Mi
          limits:
            cpu: 50m
            memory: 32Mi
      windows:
        trident-main:
          requests:
            cpu: 6m
            memory: 40Mi
          limits:
            cpu: 200m
            memory: 128Mi
        # sidecars
        node-driver-registrar:
          requests:
            cpu: 6m
            memory: 40Mi
          limits:
            cpu: 100m
            memory: 128Mi
        liveness-probe:
          requests:
            cpu: 2m
            memory: 40Mi
          limits:
            cpu: 50m
            memory: 64Mi