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.

Personalice la instalación del operador de Trident

Colaboradores

El operador Trident le permite personalizar la instalación de Trident utilizando los atributos de la TridentOrchestrator especificación. Si desea personalizar la instalación más allá de lo que TridentOrchestrator permiten los argumentos, considere utilizar tridentctl para generar manifiestos YAML personalizados para modificarlos según sea necesario.

Descripción de los pods de la controladora y los pods de nodo

Trident se ejecuta como un pod de controladora único, más un pod de nodo en cada nodo trabajador del clúster. El pod de nodo debe ejecutarse en cualquier host en el que desee potencialmente montar un volumen de Trident.

Kubernetes "selectores de nodos" y.. "toleraciones y tintes" se utilizan para restringir un pod para ejecutarse en un nodo concreto o preferido. Uso del "ControllerPlugin" y. NodePlugin, puede especificar restricciones y anulaciones.

  • El complemento de la controladora se ocupa del aprovisionamiento y la gestión de volúmenes, como snapshots y redimensionamiento.

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

Opciones de configuración

Advertencia spec.namespace Se especifica en TridentOrchestrator para indicar el espacio de nombres donde se instala Trident. Este parámetro no se puede actualizar después de instalar Trident. Si lo intenta, el TridentOrchestrator estado cambia a Failed. La intención de Trident no es migrar entre espacios de nombres.

Esta tabla detalla TridentOrchestrator atributos.

Parámetro Descripción Predeterminado

namespace

Espacio de nombres para instalar Trident en

"default"

debug

Active la depuración para Trident

false

enableForceDetach

ontap-san, ontap-san-economy y ontap-nas-economy sólo. Funciona con cierre de nodos no controlado (NGN) de Kubernetes para conceder a los administradores de clústeres la capacidad de migrar de forma segura cargas de trabajo con volúmenes montados a nodos nuevos en caso de que un nodo se vuelva en mal estado.

false

windows

Ajuste a. true Permite la instalación en nodos de trabajo de Windows.

false

cloudProvider

Establezca en "Azure" Cuando se utilizan identidades gestionadas o una identidad de nube en un clúster de AKS. Establecer en «AWS» cuando se utiliza una identidad de nube en un clúster de EKS.

""

cloudIdentity

Defina la identidad de carga de trabajo («azure.workload.identity/client-id: Xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx») cuando utilice la identidad de cloud en un clúster de AKS. Establezca el rol de AWS IAM ('eks.amazonaws.com/role-arn: arn:aws:iam::123456:ROLE/Trident-ROLE) cuando utilice la identidad de cloud en un clúster de EKS.

""

IPv6

Instale Trident sobre IPv6

falso

k8sTimeout

Tiempo de espera para las operaciones de Kubernetes

30sec

silenceAutosupport

No envíe paquetes AutoSupport a NetApp
automáticamente

false

autosupportImage

La imagen contenedora para telemetría AutoSupport

"netapp/trident-autosupport:24.10"

autosupportProxy

La dirección/puerto de un proxy para enviar AutoSupport
Telemetría

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

uninstall

Indicador utilizado para desinstalar Trident

false

logFormat

Formato de registro Trident que se va a utilizar [text,json]

"text"

tridentImage

Imagen Trident para instalar

"netapp/trident:24.10"

imageRegistry

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

"k8s.gcr.io" (Kubernetes 1,19 o posterior) o "quay.io/k8scsi"

kubeletDir

Ruta al directorio kubelet del host

"/var/lib/kubelet"

wipeout

Una lista de recursos que se deben eliminar para 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. Valores válidos:
Always para tirar siempre de la imagen.
IfNotPresent para extraer la imagen solo si aún no existe en el nodo.
Never para no tirar nunca de la imagen.

IfNotPresent

controllerPluginNodeSelector

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

Sin valores predeterminados; opcional

controllerPluginTolerations

Anula la toleración de Kubernetes en pods. Sigue el mismo formato que pod.spec.Tolerations.

Sin valores predeterminados; opcional

nodePluginNodeSelector

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

Sin valores predeterminados; opcional

nodePluginTolerations

Anula la toleración de Kubernetes en pods. Sigue el mismo formato que pod.spec.Tolerations.

Sin valores predeterminados; opcional

nodePrep

Permite a Trident preparar los nodos del clúster de Kubernetes para gestionar volúmenes mediante el protocolo de almacenamiento de datos especificado. Actualmente, iscsi es el único valor soportado.

Nota Para obtener más información sobre el formato de los parámetros del pod, consulte "Asignación de pods a nodos".

Detalles acerca de forzar separación

Forzar separación está disponible sólo para ontap-san, ontap-san-economy y. onatp-nas-economy Antes de habilitar la desconexión forzada, se debe habilitar el cierre de nodos (NGN) no controlado en el clúster de Kubernetes. Para obtener más información, consulte "Kubernetes: Cierre de nodo sin gracia".

Nota Cuando se utiliza ontap-nas-economy el controlador, es necesario establecer el autoExportPolicy parámetro en la configuración de backend para true que Trident pueda restringir el acceso desde el nodo de Kubernetes con la contaminación aplicada mediante políticas de exportación gestionadas.
Advertencia Dado que Trident se basa en LAS NGN de Kubernetes, no elimine out-of-service los daños de un nodo en mal estado hasta que se reprogramen todas las cargas de trabajo no tolerables. La aplicación o eliminación imprudente de la contaminación puede poner en peligro la protección de datos de back-end.

Cuando el administrador del clúster de Kubernetes haya aplicado la node.kubernetes.io/out-of-service=nodeshutdown:NoExecute tinta al nodo y enableForceDetach se establezca en true, Trident determinará el estado del nodo y:

  1. Cese el acceso de I/O back-end para los volúmenes montados en ese nodo.

  2. Marque el objeto de nodo Trident como dirty (no es seguro para las nuevas publicaciones).

    Nota El controlador Trident rechazará nuevas solicitudes de volumen de publicación hasta que el nodo se vuelva a calificar (después de haberse marcado como dirty) por el pod del nodo Trident. No se aceptarán todas las cargas de trabajo programadas con una RVP montada (incluso después de que el nodo del clúster esté en buen estado y listo) hasta que Trident pueda verificar el nodo clean (seguro para las nuevas publicaciones).

Cuando se restaure el estado del nodo y se elimine el tinte, Trident:

  1. Identifique y limpie las rutas publicadas obsoletas en el nodo.

  2. Si el nodo está en un cleanable estado (se ha quitado el taint de fuera de servicio y el nodo está en Ready estado) y todas las rutas obsoletas publicadas están limpias, Trident readmitirá el nodo como clean y permitirá que los nuevos volúmenes publicados al nodo.

Configuraciones de ejemplo

Puede utilizar los atributos en Opciones de configuración al definir TridentOrchestrator para personalizar la instalación.

Configuración personalizada básica

Este es un ejemplo de una instalación personalizada básica.

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

En este ejemplo se 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 de trabajo de Windows

En este ejemplo se instala Trident en un nodo de trabajo de Windows.

cat deploy/crds/tridentorchestrator_cr.yaml
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  windows: true
Identidades administradas en un cluster AKS

En este ejemplo se instala Trident para activar identidades gestionadas en un cluster AKS.

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

En este ejemplo se instala Trident para utilizarlo con una identidad de 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'
Identidad de nube en un clúster de EKS

En este ejemplo se instala Trident para utilizarlo con una identidad de 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 de nube para GKE

En este ejemplo se instala Trident para su uso con una identidad de nube en un clúster de 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