Personalizar la instalación del operador Trident
El operador Trident le permite personalizar la instalación de Trident utilizando los atributos en el TridentOrchestrator especulación. Si desea personalizar la instalación más allá de lo TridentOrchestrator Los argumentos lo permiten, considere usar tridentctl para generar manifiestos YAML personalizados que se podrán modificar según sea necesario.
Comprender los pods del controlador y los pods de nodo
Trident se ejecuta como un único pod de controlador, más 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"tolerancias y máculas" Se utilizan para restringir un pod a ejecutarse en un nodo específico o preferido. Utilizando el ControllerPlugin y NodePlugin , puedes especificar restricciones y anulaciones.
-
El plugin del controlador gestiona el aprovisionamiento y la administración de volúmenes, como las instantáneas y el cambio de tamaño.
-
El plugin del 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 está instalado Trident . Este parámetro *no se puede actualizar después de instalar Trident *. Intentar hacerlo provoca TridentOrchestrator estado a cambiar a Failed . Trident no está diseñado para migrarse entre espacios de nombres.
|
Esta tabla detalla TridentOrchestrator atributos.
| Parámetro | Descripción | Por defecto | ||
|---|---|---|---|---|
|
Espacio de nombres para instalar Trident en |
|
||
|
Habilitar la depuración para Trident |
|
||
|
|
|
||
|
Configurando para |
|
||
|
Empezar a |
|
||
|
Establezca la identidad de carga de trabajo ("azure.workload.identity/client-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx") cuando utilice la identidad en la nube en un clúster de AKS. Establezca el rol de AWS IAM ("'eks.amazonaws.com/role-arn: arn:aws:iam::123456:role/trident-role'") al usar la identidad en la nube en un clúster de EKS. Establezca la identidad en la nube ("'iam.gke.io/gcp-service-account: xxxx@mygcpproject.iam.gserviceaccount.com'") cuando utilice la identidad en la nube en un clúster de GKE. |
|
||
|
Instalar Trident sobre IPv6 |
FALSO |
||
|
Tiempo de espera para las operaciones de Kubernetes.
|
|
||
|
No enviar automáticamente paquetes de soporte automático a NetApp |
|
||
|
Imagen del contenedor para la telemetría de soporte automático |
|
||
|
La dirección/puerto de un proxy para enviar telemetría de Autosupport |
|
||
|
Un flag utilizado para desinstalar Trident |
|
||
|
Formato de registro de Trident a utilizar [texto,json] |
|
||
|
Imagen de Trident para instalar |
|
||
|
Ruta al registro interno, del formato |
|
||
|
Ruta al directorio kubelet en el host |
|
||
|
Lista de recursos que se deben eliminar para desinstalar completamente 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 a Trident preparar los nodos del clúster Kubernetes para administrar volúmenes utilizando 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 |
|
|
Para obtener más información sobre el formato de los parámetros del pod, consulte"Asignación de pods a nodos" . |
Detalles sobre el desprendimiento forzado
La función de desconexión forzada está disponible para ontap-san , ontap-san-economy , ontap-nas , y ontap-nas-economy solo. Antes de habilitar la desconexión forzada, se debe habilitar el apagado de nodo no elegante (NGNS) en el clúster de Kubernetes. NGNS está habilitado de forma predeterminada para Kubernetes 1.28 y superiores. Para obtener más información, consulte"Kubernetes: Apagado de nodo no correcto" .
|
|
Al usar el ontap-nas o ontap-nas-economy controlador, necesitas configurar el autoExportPolicy parámetro en la configuración del backend para true de modo que Trident pueda restringir el acceso desde el nodo de Kubernetes con la restricción aplicada mediante políticas de exportación gestionadas.
|
|
|
Dado que Trident depende de Kubernetes NGNS, no lo elimine. out-of-service Las manchas de un nodo defectuoso persisten hasta que se reprogramen todas las cargas de trabajo intolerables. Aplicar o eliminar la contaminación de forma imprudente puede poner en peligro la protección de datos del sistema.
|
Cuando el administrador del clúster de Kubernetes haya aplicado el node.kubernetes.io/out-of-service=nodeshutdown:NoExecute contaminación del nodo y enableForceDetach está configurado para true Trident determinará el estado del nodo y:
-
Suspender el acceso de E/S de backend para los volúmenes montados en ese nodo.
-
Marcar el objeto de nodo Trident como
dirty(no apto para nuevas publicaciones).El controlador Trident rechazará las nuevas solicitudes de publicación de volumen hasta que el nodo vuelva a calificarse (después de haber sido marcado como dirty) por el pod del nodo Trident . Las cargas de trabajo programadas con un PVC montado (incluso después de que el nodo del clúster esté en buen estado y listo) no se aceptarán hasta que Trident pueda verificar el nodo.clean(apto para nuevas publicaciones).
Cuando se restablezca la salud del nodo y se elimine la contaminación, Trident hará lo siguiente:
-
Identificar y limpiar las rutas publicadas obsoletas en el nodo.
-
Si el nodo está en un
cleanableestado (se ha eliminado la marca de fuera de servicio y el nodo está enReadySi el estado) y todas las rutas publicadas obsoletas están limpias, Trident readmitirá el nodo comocleany permitir nuevos volúmenes publicados en el nodo.
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 de 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 en la 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