Personalizzare l'installazione dell'operatore Trident
L'operatore Trident permette di personalizzare l'installazione Trident usando gli attributi nella TridentOrchestrator spec. Se vuoi personalizzare l'installazione oltre ciò che gli argomenti di TridentOrchestrator consentono, considera l'utilizzo di tridentctl per generare manifesti YAML personalizzati da modificare secondo necessità.
Comprendere i pod controller e i pod nodo
Trident viene eseguito come un singolo controller pod e un node pod su ogni nodo worker nel cluster. Il node pod deve essere in esecuzione su qualsiasi host su cui si desidera potenzialmente montare un volume Trident.
Kubernetes "selettori di nodi" e "tolleranze e taint" sono utilizzati per vincolare un pod a essere eseguito su un nodo specifico o preferito. Utilizzando ControllerPlugin e NodePlugin, puoi specificare vincoli e override.
-
Il plugin del controller gestisce il provisioning e la gestione dei volumi, come snapshot e ridimensionamento.
-
Il plugin del nodo gestisce il collegamento dello storage al nodo.
Opzioni di configurazione
|
|
spec.namespace è specificato in TridentOrchestrator per indicare il namespace in cui Trident è installato. Questo parametro non può essere aggiornato dopo che Trident è installato. Il tentativo di farlo fa sì che lo stato TridentOrchestrator cambi in Failed. Trident non è destinato a essere migrato tra namespace.
|
Questa tabella illustra TridentOrchestrator gli attributi.
| Parametro | Descrizione | Predefinito | ||||
|---|---|---|---|---|---|---|
|
Spazio dei nomi in cui installare Trident |
|
||||
|
Abilita il debug per Trident |
|
||||
|
|
|
||||
|
L'impostazione su |
|
||||
|
Impostare su |
|
||||
|
Impostare su workload identity ("azure.workload.identity/client-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx") quando si utilizza cloud identity su un cluster AKS. Impostare su AWS IAM role ("'eks.amazonaws.com/role-arn: arn:aws:iam::123456:role/trident-role'") quando si utilizza cloud identity su un cluster EKS. Impostare su cloud identity ("'iam.gke.io/gcp-service-account: xxxx@mygcpproject.iam.gserviceaccount.com'") quando si utilizza cloud identity su un cluster GKE. |
|
||||
|
Install Trident su IPv6 |
falso |
||||
|
Timeout per le operazioni Kubernetes.
|
|
||||
|
Non inviare automaticamente i bundle di autosupport a NetApp |
|
||||
|
L'immagine container per Autosupport Telemetry |
|
||||
|
L'indirizzo/porta di un proxy per l'invio della Telemetria di Autosupport |
|
||||
|
Un flag utilizzato per disinstallare Trident |
|
||||
|
Formato di registrazione Trident da utilizzare [text,json] |
|
||||
|
Trident image da installare |
|
||||
|
Percorso al registro interno, del formato |
|
||||
|
Percorso della directory kubelet sull'host |
|
||||
|
Un elenco di risorse da eliminare per eseguire una rimozione completa di Trident |
|||||
|
Segreti per prelevare immagini da un registro interno |
|||||
|
Imposta la policy di pull dell'immagine per il Trident operator. I valori validi sono: |
|
||||
|
Selettori di nodo aggiuntivi per i pod. Segue lo stesso formato di |
Nessun valore predefinito; facoltativo |
||||
|
Sostituisce le tolleranze di Kubernetes per i pod. Segue lo stesso formato di |
Nessun valore predefinito; facoltativo |
||||
|
Selettori di nodo aggiuntivi per i pod. Segue lo stesso formato come |
Nessun valore predefinito; facoltativo |
||||
|
Sostituisce le tolleranze di Kubernetes per i pod. Segue lo stesso formato di |
Nessun valore predefinito; facoltativo |
||||
|
Consente 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 un throughput migliorato.
|
falso |
||||
|
Imposta i limiti delle risorse Kubernetes e le richieste per il controller Trident e i pod dei nodi. È possibile configurare CPU e memoria per ogni container e sidecar per gestire l'allocazione delle risorse in Kubernetes. Per ulteriori informazioni sulla configurazione delle richieste e dei limiti delle risorse, fare riferimento a "Gestione delle risorse per pod e container".
|
|
||||
|
Abilita HTTPS per l'endpoint delle metriche Prometheus. |
falso |
||||
|
Abilita la rete host per il controller Trident. Questa funzionalità è utile quando si desidera separare il traffico frontend e backend in una rete multi-home. |
falso |
|
|
Per ulteriori informazioni sulla formattazione dei parametri del pod, consulta "Assegnazione dei pod ai nodi". |
Configurazioni di esempio
È possibile utilizzare gli attributi in Opzioni di configurazione quando si definisce TridentOrchestrator per personalizzare l'installazione.
Configurazione personalizzata di base
Questo esempio, creato dopo l'esecuzione del comando cat deploy/crds/tridentorchestrator_cr_imagepullsecrets.yaml, 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
Questo esempio installa Trident con node selectors.
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
controllerPluginNodeSelector:
nodetype: master
nodePluginNodeSelector:
storage: netapp
Nodi worker Windows
Questo esempio, creato dopo aver eseguito il cat deploy/crds/tridentorchestrator_cr.yaml comando, installa Trident su un nodo worker Windows.
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
windows: true
Identità gestite su un cluster AKS
Questo esempio installa 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'uso 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'uso 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'uso 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
Configurazione delle richieste di risorse Kubernetes e dei limiti per il controller Trident e i pod dei nodi Linux Trident
Questo esempio configura le richieste e i limiti di risorse Kubernetes per il controller Trident e i pod Trident del nodo Linux.
|
|
Disclaimer: I valori di richiesta e limite forniti in questo esempio sono solo a scopo dimostrativo. Adatta questi valori in base al tuo ambiente e ai requisiti del carico di lavoro. |
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
Configurazione delle richieste di risorse Kubernetes e dei limiti per il controller Trident e per i pod dei nodi Trident Windows e Linux
Questo esempio configura le richieste e i limiti di risorse Kubernetes per il controller Trident e i pod Trident dei nodi Windows e Linux.
|
|
Disclaimer: I valori di richiesta e limite forniti in questo esempio sono solo a scopo dimostrativo. Adatta questi valori in base al tuo ambiente e ai requisiti del carico di lavoro. |
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