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
|
|
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 | ||||
|---|---|---|---|---|---|---|
|
Espacio de nombres para instalar Trident |
|
||||
|
Habilita la depuración para Trident |
|
||||
|
|
|
||||
|
La configuración de |
|
||||
|
Configúralo en |
|
||||
|
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. |
|
||||
|
Instala Trident sobre IPv6 |
false |
||||
|
Tiempo de espera para las operaciones de Kubernetes.
|
|
||||
|
No envíes paquetes de autosupport a NetApp automáticamente |
|
||||
|
La imagen del contenedor para Autosupport Telemetry |
|
||||
|
La dirección/puerto de un proxy para enviar Autosupport Telemetry |
|
||||
|
Una bandera usada para desinstalar Trident |
|
||||
|
Formato de registro de Trident que se usará [text,json] |
|
||||
|
Imagen de Trident para instalar |
|
||||
|
Ruta al registro interno, de formato |
|
||||
|
Ruta al directorio de kubelet en el host |
|
||||
|
Una lista de recursos para eliminar y así realizar una eliminación completa de Trident |
|||||
|
Secretos para extraer imágenes de un registro interno |
|||||
|
Establece la política de extracción de imágenes para el operador Trident. Los valores válidos son: |
|
||||
|
Selectores de nodos adicionales para pods. Sigue el mismo formato que |
Sin valor predeterminado; opcional |
||||
|
Anula las tolerancias de Kubernetes para los pods. Sigue el mismo formato que |
Sin valor predeterminado; opcional |
||||
|
Selectores de nodos adicionales para pods. Sigue el mismo formato que |
Sin valor predeterminado; opcional |
||||
|
Anula las tolerancias de Kubernetes para los pods. Sigue el mismo formato que |
Sin valor predeterminado; opcional |
||||
|
Permite que Trident prepare los nodos del clúster de Kubernetes para gestionar volúmenes usando el protocolo de almacenamiento de datos especificado. Actualmente,
|
|||||
|
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. |
|
||||
|
Permite operaciones simultáneas del controlador Trident para mejorar el rendimiento.
|
false |
||||
|
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".
|
|
||||
|
Habilita HTTPS para el endpoint de métricas de Prometheus. |
false |
||||
|
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 |
|
|
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.
|
|
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.
|
|
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