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.

Escalabilidad del controlador

Colaboradores joan-ing

Trident introduce la escalabilidad del controlador mediante una mejor concurrencia entre varios controladores de almacenamiento. Los clientes pueden identificar qué controladores de Trident admiten la escalabilidad del controlador en disponibilidad general y cuáles están disponibles como vista previa técnica en Trident 26.02. Esto permite tomar decisiones informadas de implementación y una gestión de riesgos adecuada para entornos Kubernetes escalables.

Conceptos clave y definiciones

Escalabilidad del controlador

La escalabilidad del controlador se refiere a la capacidad del controlador Trident para procesar múltiples operaciones de almacenamiento en paralelo en lugar de serializarlas detrás de un único bloqueo. Estas operaciones incluyen la creación, eliminación, redimensionamiento de volúmenes, la creación y eliminación de instantáneas, la publicación y despublicación de volúmenes y la gestión de backend.

Cuando la escalabilidad del controlador está activada, las operaciones en diferentes volúmenes y backends se realizan de forma concurrente. Esto aumenta el rendimiento y reduce el tiempo de operación de extremo a extremo en entornos con un gran número de PersistentVolumeClaim y VolumeSnapshot operaciones concurrentes.

Compatibilidad con la escalabilidad del controlador

Trident admite la escalabilidad del controlador con diferentes niveles de madurez según el controlador de almacenamiento.

Disponibilidad general

Los siguientes drivers soportan la escalabilidad del controlador en disponibilidad general en Trident 26.02:

  • san

  • nas

  • san-nvme

  • google-cloud-netapp-volumes

Habilita la escalabilidad del controlador

La escalabilidad del controlador se controla mediante la enableConcurrency opción de configuración. Esta opción debe habilitarse explícitamente durante la instalación de Trident o actualizando una implementación existente.

Despliegue del operador Trident

Para habilitar la escalabilidad del controlador con el operador Trident, establece enableConcurrency en true en el recurso personalizado TridentOrchestrator.

Nueva instalación

Crea o edita el TridentOrchestrator CR con enableConcurrency configurado en true:

apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  namespace: trident
  enableConcurrency: true

Aplicar el CR:

kubectl apply -f tridentorchestrator_cr.yaml

Instalación existente

Aplica un parche a la TridentOrchestrator CR existente para habilitar la escalabilidad del controlador:

kubectl patch torc trident --type=merge -p '{"spec":{"enableConcurrency":true}}'

Verifica que se haya aplicado el ajuste:

kubectl get torc trident -o jsonpath='{.status.currentInstallationParams.enableConcurrency}'

Despliegue con Helm

Para activar la escalabilidad del controlador con Helm, establece el valor enableConcurrency a true.

Nueva instalación

helm install trident netapp-trident/trident-operator --namespace trident --create-namespace --set enableConcurrency=true

Instalación existente

helm upgrade trident netapp-trident/trident-operator --namespace trident --set enableConcurrency=true

Como alternativa, establece enableConcurrency en true en un archivo values.yaml personalizado:

# values.yaml
enableConcurrency: true

Luego instala o actualiza usando el archivo de valores:

helm install trident netapp-trident/trident-operator --namespace trident --create-namespace -f values.yaml

implementación de tridentctl

Para habilitar la escalabilidad del controlador con tridentctl, pasa la bandera --enable-concurrency durante la instalación.

Nueva instalación

tridentctl install -n trident --enable-concurrency

Instalación existente

Para habilitar la escalabilidad del controlador en una implementación basada en tridentctl, desinstala y vuelve a instalar con el flag:

tridentctl uninstall -n trident
tridentctl install -n trident --enable-concurrency

Verifica que la escalabilidad del controlador esté activada

Después de habilitar la escalabilidad del controlador, verifica que el controlador Trident se está ejecutando con la concurrencia habilitada revisando los registros del pod del controlador:

kubectl logs -n trident deploy/trident-controller | grep -i concurrency

Deberías ver una entrada de registro que indica que la concurrencia está activada.

Avance técnico

Los siguientes drivers admiten la escalabilidad del controlador como vista previa técnica en Trident 26.02:

  • nas-eco

  • san-eco

Para estos drivers:

  • La concurrencia de controladores está disponible para evaluación y pruebas

  • El comportamiento puede cambiar en futuras versiones

  • No se recomienda usarlo en entornos de producción

Comportamiento de la concurrencia

Cuando la escalabilidad del controlador está activada:

  • Trident reemplaza el bloqueo global único por bloqueos detallados por recurso

  • Las operaciones que modifican el mismo recurso se serializan para mantener la coherencia de los datos

  • Las operaciones que solo leen de un recurso pueden realizarse simultáneamente con otras operaciones de lectura en ese recurso

  • Trident limita las solicitudes simultáneas de la API de ONTAP a 20 por LIF de gestión para evitar sobrecargar los sistemas de almacenamiento backend

  • Si varios backends comparten el mismo LIF de gestión, comparten este límite de 20 solicitudes

Limitaciones y consideraciones conocidas

Las siguientes consideraciones aplican a la escalabilidad del controlador:

  • La concurrencia se gestiona internamente por el controlador Trident

  • En esta versión no hay límites de concurrencia configurables por el usuario

  • El rendimiento global depende de:

    • El controlador de almacenamiento en uso

    • Capacidad de respuesta del backend

    • Rendimiento del servidor API de Kubernetes

  • Una alta concurrencia puede aumentar la carga en los sistemas de almacenamiento backend

Advertencias y limitaciones

Las siguientes limitaciones se aplican en Trident 26.02:

  • El comportamiento de la escalabilidad del controlador no es idéntico en todos los drivers

  • Los controladores de vista previa técnica pueden mostrar:

    • Rendimiento inconsistente bajo carga alta

    • Cambios en el comportamiento entre versiones

  • La depuración de operaciones concurrentes puede ser más compleja debido a la ejecución paralela

  • Las métricas y los registros pueden mostrar la salida de operaciones intercaladas

Recomendaciones

  • Usa controladores de disponibilidad general (GA) para entornos de producción que requieran alta escalabilidad

  • Evalúa los controladores de technical preview en entornos que no sean de producción

  • Supervisa el rendimiento del backend y del controlador cuando trabajas a escala

  • Evita asumir el orden de las operaciones en los scripts de automatización