Personalizzare l'installazione dell'operatore Trident
L'operatore Trident consente di personalizzare l'installazione di Trident utilizzando gli attributi della TridentOrchestrator
specifica. Se si desidera personalizzare l'installazione oltre gli TridentOrchestrator
argomenti consentiti, utilizzare tridentctl
per generare manifesti YAML personalizzati da modificare in base alle necessità.
Comprensione dei pod controller e dei pod di nodi
Trident funziona come un singolo pod controller, più un pod di nodo su ciascun nodo di lavoro nel cluster. Il pod di nodo deve essere in esecuzione su qualsiasi host in cui si desidera montare potenzialmente un volume Trident.
Kubernetes "selettori di nodi" e. "tollerazioni e contamini" vengono utilizzati per vincolare l'esecuzione di un pod su un nodo specifico o preferito. Utilizzo di`ControllerPlugin` e. NodePlugin
, è possibile specificare vincoli e override.
-
Il plug-in del controller gestisce il provisioning e la gestione dei volumi, ad esempio snapshot e ridimensionamento.
-
Il plug-in del nodo gestisce il collegamento dello storage al nodo.
Opzioni di configurazione
|
spec.namespace Viene specificato in per indicare lo spazio dei nomi in TridentOrchestrator cui è installato Trident. Questo parametro non può essere aggiornato dopo l'installazione di Trident. Se si tenta di eseguire questa operazione, TridentOrchestrator lo stato viene modificato in Failed . Trident non deve essere migrato tra namespace.
|
Questa tabella è dettagliata TridentOrchestrator
attributi.
Parametro | Descrizione | Predefinito | ||
---|---|---|---|---|
|
Spazio dei nomi in cui installare Trident |
|
||
|
Attivare il debug per Trident |
|
||
|
|
|
||
|
Impostazione su |
|
||
|
Impostato su |
|
||
|
Impostare sull'identità del workload ("Azure.workload.Identity/client-id: Xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx") quando si utilizza l'identità cloud su un cluster AKS. Impostato sul ruolo AWS IAM ("'eks.amazonaws.com/role-arn: arn:AWS:iam::123456:role/Trident-role'") quando si utilizza l'identità cloud su un cluster EKS. Impostare sull'identità cloud ("'iam.gke.io/gcp-service-account: xxxx@mygcpproject.iam.gserviceaccount.com'") quando si utilizza l'identità cloud su un cluster GKE. |
|
||
|
Installare Trident su IPv6 |
falso |
||
|
Timeout per le operazioni di Kubernetes.
|
|
||
|
Non inviare pacchetti AutoSupport a NetApp |
|
||
|
L'immagine del contenitore per la telemetria AutoSupport |
|
||
|
Indirizzo/porta di un proxy per l'invio della AutoSupport |
|
||
|
Un flag utilizzato per disinstallare Trident |
|
||
|
Formato di registrazione Trident da utilizzare [text,json] |
|
||
|
Immagine Trident da installare |
|
||
|
Percorso al registro interno, del formato |
|
||
|
Percorso della directory del kubelet sull'host |
|
||
|
Un elenco di risorse da eliminare per eseguire la rimozione completa di Trident |
|||
|
Secrets (segreti) per estrarre immagini da un registro interno |
|||
|
Imposta il criterio di pull dell'immagine per l'operatore Trident. I valori validi sono: |
|
||
|
Selettori di nodi aggiuntivi per i pod. Segue lo stesso formato di |
Nessuna impostazione predefinita; opzionale |
||
|
Ignora le tolleranze Kubernetes per i pod. Segue lo stesso formato di |
Nessuna impostazione predefinita; opzionale |
||
|
Selettori di nodi aggiuntivi per i pod. Segue lo stesso formato di |
Nessuna impostazione predefinita; opzionale |
||
|
Ignora le tolleranze Kubernetes per i pod. Segue lo stesso formato di |
Nessuna impostazione predefinita; opzionale |
||
|
Permette a Trident di preparare i nodi del cluster Kubernetes per gestire i volumi utilizzando il protocollo storage specificato. Attualmente,
|
|||
|
Limite di query al secondo (QPS) utilizzato dal controller durante la comunicazione con il server API Kubernetes. Il valore Burst viene impostato automaticamente in base al valore QPS. |
|
||
|
Consente operazioni simultanee del controller Trident per una maggiore produttività.
|
falso |
|
Per ulteriori informazioni sulla formattazione dei parametri del pod, fare riferimento a. "Assegnazione di pod ai nodi". |
Dettagli sulla forza di distacco
Il distacco forzato è disponibile per ontap-san
, ontap-san-economy
, ontap-nas
, E ontap-nas-economy
soltanto. Prima di abilitare la disconnessione forzata, è necessario abilitare l'arresto non regolare del nodo (NGNS) sul cluster Kubernetes. NGNS è abilitato per impostazione predefinita per Kubernetes 1.28 e versioni successive. Per ulteriori informazioni, fare riferimento a "Kubernetes: Shutdown del nodo non aggraziato" .
|
Quando si utilizza il ontap-nas driver OR ontap-nas-economy , è necessario impostare il autoExportPolicy parametro nella configurazione backend in true modo che Trident possa limitare l'accesso dal nodo Kubernetes con il tag applicato utilizzando policy di esportazione gestite.
|
|
Poiché Trident fa affidamento su Kubernetes NGNS, non rimuovere i out-of-service tag da un nodo non integro fino a quando tutti i carichi di lavoro non tollerabili non vengono ripianificati. L'applicazione o la rimozione sconsiderata della contaminazione può compromettere la protezione dei dati back-end.
|
Quando l'amministratore del cluster Kubernetes ha applicato il node.kubernetes.io/out-of-service=nodeshutdown:NoExecute
tag al nodo ed enableForceDetach
è impostato su true
, Trident determinerà lo stato del nodo e:
-
Interrompere l'accesso i/o back-end per i volumi montati su quel nodo.
-
Contrassegnare l'oggetto nodo Trident come
dirty
(non sicuro per le nuove pubblicazioni).Il controller Trident rifiuterà le nuove richieste di volume di pubblicazione finché il nodo non viene riqualificato (dopo essere stato contrassegnato come dirty
) dal pod di nodo Trident. Tutti i carichi di lavoro pianificati con un PVC montato (anche dopo che il nodo del cluster è integro e pronto) non saranno accettati fino a quando Trident non sarà in grado di verificare il nodoclean
(sicuro per le nuove pubblicazioni).
Quando l'integrità del nodo viene ripristinata e il tag viene rimosso, Trident:
-
Identificare e pulire i percorsi pubblicati obsoleti sul nodo.
-
Se il nodo si trova in uno
cleanable
stato (il tag out-of-service è stato rimosso e il nodo è nelloReady
stato) e tutti i percorsi obsoleti e pubblicati sono puliti, Trident riammetterà il nodo comeclean
e consentirà ai nuovi volumi pubblicati di accedere al nodo.
Configurazioni di esempio
È possibile utilizzare gli attributi in Opzioni di configurazione durante la definizione TridentOrchestrator
per personalizzare l'installazione.
Configurazione personalizzata di base
Questo esempio, creato dopo aver eseguito il cat deploy/crds/tridentorchestrator_cr_imagepullsecrets.yaml
comando, rappresenta un'installazione personalizzata di base:
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
imagePullSecrets:
- thisisasecret
Selettori di nodo
In questo esempio viene installato Trident con i selettori di nodo.
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
controllerPluginNodeSelector:
nodetype: master
nodePluginNodeSelector:
storage: netapp
Nodi di lavoro Windows
In questo esempio, creato dopo l'esecuzione del cat deploy/crds/tridentorchestrator_cr.yaml
comando, Trident viene installato su un nodo di lavoro Windows.
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
windows: true
Identità gestite su un cluster AKS
In questo esempio viene installato Trident per abilitare le identità gestite su un cluster AKS.
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
cloudProvider: "Azure"
Identità cloud su un cluster AKS
Questo esempio installa Trident per l'utilizzo con un'identità cloud su un cluster 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'
Identità cloud su un cluster EKS
Questo esempio installa Trident per l'utilizzo con un'identità cloud su un cluster 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'"
Identità cloud per GKE
Questo esempio installa Trident per l'utilizzo con un'identità cloud su un cluster 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