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 viene eseguito come un singolo pod controller e un pod nodo su ciascun nodo worker nel cluster. Il pod del nodo deve essere in esecuzione su qualsiasi host in cui si desidera potenzialmente montare 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 |
||||
|
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 contenitore 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 da quello backend in una rete multi-home. |
falso |
|
|
Per ulteriori informazioni sulla formattazione dei parametri del pod, fare riferimento a. "Assegnazione di pod ai nodi". |
Configurazioni di esempio
Puoi usare gli attributi inOpzioni di configurazione quando si definisce TridentOrchestrator per personalizzare la tua 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
Questo esempio installa Trident con 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 worker di 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
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
In questo esempio viene installato 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
In questo esempio viene installato 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
In questo esempio viene installato 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
Configurazione delle richieste e dei limiti delle risorse Kubernetes per il controller Trident e i pod dei nodi Trident Linux
Questo esempio configura le richieste e i limiti delle risorse Kubernetes per i controller Trident e i pod dei nodi Trident Linux.
|
|
Avvertenza: i valori di richiesta e limite forniti in questo esempio sono solo a scopo dimostrativo. Adattare questi valori in base all'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 e dei limiti delle risorse Kubernetes per il controller Trident e i pod dei nodi Trident Windows e Linux
Questo esempio configura le richieste e i limiti delle risorse Kubernetes per il controller Trident e i pod dei nodi Trident Windows e Linux.
|
|
Avvertenza: i valori di richiesta e limite forniti in questo esempio sono solo a scopo dimostrativo. Adattare questi valori in base all'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