Personalice la instalación del operador de Trident
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 único pod de controlador y un pod de nodo en cada nodo de trabajo del clúster. El pod del nodo debe estar ejecutándose en cualquier host donde se desee potencialmente montar un volumen 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
|
|
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 | ||||
|---|---|---|---|---|---|---|
|
Espacio de nombres para instalar Trident en |
|
||||
|
Active la depuración para Trident |
|
||||
|
|
|
||||
|
Ajuste a. |
|
||||
|
Establecer como |
|
||||
|
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. Se establece en la identidad de la nube («iam.gke.io/gcp-service-account: xxxx@mygcpproject.iam.gserviceaccount.com») cuando se utiliza la identidad de la nube en un clúster de GKE. |
|
||||
|
Instale Trident sobre IPv6 |
falso |
||||
|
Tiempo de espera para las operaciones de Kubernetes.
|
|
||||
|
No envíe paquetes AutoSupport a NetApp |
|
||||
|
La imagen contenedora para telemetría AutoSupport |
|
||||
|
La dirección/puerto de un proxy para enviar AutoSupport |
|
||||
|
Indicador utilizado para desinstalar Trident |
|
||||
|
Formato de registro Trident que se va a utilizar [text,json] |
|
||||
|
Imagen Trident para instalar |
|
||||
|
Ruta de acceso al registro interno, del formato |
|
||||
|
Ruta al directorio kubelet del host |
|
||||
|
Una lista de recursos que se deben eliminar para 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. Valores válidos: |
|
||||
|
Selectores de nodos adicionales para POD. Sigue el mismo formato que |
Sin valores predeterminados; opcional |
||||
|
Anula la toleración de Kubernetes en pods. Sigue el mismo formato que |
Sin valores predeterminados; opcional |
||||
|
Selectores de nodos adicionales para POD. Sigue el mismo formato que |
Sin valores predeterminados; opcional |
||||
|
Anula la toleración de Kubernetes en pods. Sigue el mismo formato que |
Sin valores predeterminados; opcional |
||||
|
Permite a Trident preparar los nodos del clúster de Kubernetes para gestionar volúmenes mediante el protocolo de almacenamiento de datos especificado. Actualmente,
|
|||||
|
El límite de consultas por segundo (QPS) utilizado por el controlador mientras se comunica con el servidor de API de Kubernetes. El valor de ráfaga se establece automáticamente en función del valor QPS. |
|
||||
|
Permite operaciones simultáneas del controlador Trident para mejorar el rendimiento.
|
falso |
||||
|
Establece los límites de recursos y las solicitudes de Kubernetes para el controlador Trident y los pods de nodos. Puedes configurar la CPU y la memoria para cada contenedor y sidecar para gestionar la asignación de recursos en Kubernetes. Para obtener más información sobre la configuración de solicitudes y límites de recursos, consulte"Gestión de recursos para pods y contenedores" .
|
|
||||
|
Habilita HTTPS para el punto de conexión de métricas de Prometheus. |
falso |
||||
|
Habilita la conexión en red del host para el controlador Trident . Esto resulta útil cuando se desea separar el tráfico del frontend del tráfico del backend en una red multihome. |
falso |
|
|
Para obtener más información sobre el formato de los parámetros del pod, consulte "Asignación de pods a nodos". |
Configuraciones de ejemplo
Puedes usar los atributos enOpciones de configuración al definir TridentOrchestrator para personalizar su instalación.
Configuración personalizada básica
Este ejemplo, creado después de ejecutar el cat deploy/crds/tridentorchestrator_cr_imagepullsecrets.yaml Este 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 de trabajo de Windows
Este ejemplo, creado después de ejecutar el cat deploy/crds/tridentorchestrator_cr.yaml Este comando instala Trident en un nodo de trabajo de Windows.
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
windows: true
Identidades administradas en un clúster de AKS
Este ejemplo instala Trident para habilitar identidades administradas 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 su uso con una identidad en la nube en un clúster de 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 en la nube en un clúster EKS
Este ejemplo instala Trident para su uso con una identidad en la nube en un clúster de 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
Este ejemplo instala Trident para su uso con una identidad en la 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
Configuración de solicitudes y límites de recursos de Kubernetes para el controlador Trident y los pods de nodos Linux de Trident
Este ejemplo configura las solicitudes y los límites de recursos de Kubernetes para el controlador Trident y los pods de nodos Linux de Trident .
|
|
Aviso legal: Los valores de solicitud y límite proporcionados en este ejemplo son solo para fines demostrativos. Ajuste estos valores según las necesidades de su entorno y 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 nodos Trident de Windows y Linux
Este ejemplo configura las solicitudes y los límites de recursos de Kubernetes para el controlador Trident y los pods de nodos Trident de Windows y Linux.
|
|
Aviso legal: Los valores de solicitud y límite proporcionados en este ejemplo son solo para fines demostrativos. Ajuste estos valores según las necesidades de su entorno y 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