Skip to main content
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

Personalizzare l'installazione dell'operatore Trident

Collaboratori

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

Attenzione 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

namespace

Spazio dei nomi in cui installare Trident

"default"

debug

Attivare il debug per Trident

false

enableForceDetach

ontap-san, , ontap-san-economy e ontap-nas-economy solo. Funziona con Kubernetes non-Graged Node Shutdown (NGNS) per consentire agli amministratori del cluster di migrare in sicurezza i carichi di lavoro con volumi montati su nuovi nodi in caso di problemi di integrità di un nodo.

false

windows

Impostazione su true Attiva l'installazione su nodi di lavoro Windows.

false

cloudProvider

Impostare su "Azure" Quando si utilizzano identità gestite o un'identità cloud su un cluster AKS. Impostato su "AWS" quando si utilizza un'identità cloud su un cluster EKS.

""

cloudIdentity

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.

""

IPv6

Installare Trident su IPv6

falso

k8sTimeout

Timeout per le operazioni Kubernetes

30sec

silenceAutosupport

Non inviare pacchetti AutoSupport a NetApp
in maniera automatica

false

autosupportImage

L'immagine del contenitore per la telemetria AutoSupport

"netapp/trident-autosupport:24.10"

autosupportProxy

Indirizzo/porta di un proxy per l'invio della AutoSupport
Telemetria

"http://proxy.example.com:8888"

uninstall

Un flag utilizzato per disinstallare Trident

false

logFormat

Formato di registrazione Trident da utilizzare [text,json]

"text"

tridentImage

Immagine Trident da installare

"netapp/trident:24.10"

imageRegistry

Percorso al registro interno, del formato
<registry FQDN>[:port][/subpath]

"k8s.gcr.io" (Kubernetes 1,19+) o. "quay.io/k8scsi"

kubeletDir

Percorso della directory del kubelet sull'host

"/var/lib/kubelet"

wipeout

Un elenco di risorse da eliminare per eseguire la rimozione completa di Trident

imagePullSecrets

Secrets (segreti) per estrarre immagini da un registro interno

imagePullPolicy

Imposta il criterio di pull dell'immagine per l'operatore Trident. I valori validi sono:
Always per estrarre sempre l'immagine.
IfNotPresent per estrarre l'immagine solo se non esiste già nel nodo.
Never per non tirare mai l'immagine.

IfNotPresent

controllerPluginNodeSelector

Selettori di nodi aggiuntivi per i pod. Segue lo stesso formato di pod.spec.nodeSelector.

Nessuna impostazione predefinita; opzionale

controllerPluginTolerations

Ignora le tolleranze Kubernetes per i pod. Segue lo stesso formato di pod.spec.Tolerations.

Nessuna impostazione predefinita; opzionale

nodePluginNodeSelector

Selettori di nodi aggiuntivi per i pod. Segue lo stesso formato di pod.spec.nodeSelector.

Nessuna impostazione predefinita; opzionale

nodePluginTolerations

Ignora le tolleranze Kubernetes per i pod. Segue lo stesso formato di pod.spec.Tolerations.

Nessuna impostazione predefinita; opzionale

nodePrep

Permette a Trident di preparare i nodi del cluster Kubernetes per gestire i volumi utilizzando il protocollo storage specificato. Attualmente, iscsi è l'unico valore supportato.

Nota Per ulteriori informazioni sulla formattazione dei parametri del pod, fare riferimento a. "Assegnazione di pod ai nodi".

Dettagli sulla forza di distacco

Lo stacco forzato è disponibile solo per ontap-san, ontap-san-economy e. onatp-nas-economy Prima di attivare la funzione di force stach, è necessario attivare la funzione NGNS (non-aggraziate node shutdown) sul cluster Kubernetes. Per ulteriori informazioni, fare riferimento a "Kubernetes: Shutdown del nodo non aggraziato".

Nota Quando si utilizza il ontap-nas-economy driver, è necessario impostare il autoExportPolicy parametro nella configurazione backend su in true modo che Trident possa limitare l'accesso dal nodo Kubernetes con il tag applicato utilizzando policy di esportazione gestite.
Attenzione 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:

  1. Interrompere l'accesso i/o back-end per i volumi montati su quel nodo.

  2. Contrassegnare l'oggetto nodo Trident come dirty (non sicuro per le nuove pubblicazioni).

    Nota 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 nodo clean (sicuro per le nuove pubblicazioni).

Quando l'integrità del nodo viene ripristinata e il tag viene rimosso, Trident:

  1. Identificare e pulire i percorsi pubblicati obsoleti sul nodo.

  2. Se il nodo si trova in uno cleanable stato (il tag out-of-service è stato rimosso e il nodo è nello Ready stato) e tutti i percorsi obsoleti e pubblicati sono puliti, Trident riammetterà il nodo come clean 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 è un esempio per un'installazione personalizzata di base.

cat deploy/crds/tridentorchestrator_cr_imagepullsecrets.yaml
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 viene installato Trident su un nodo di lavoro Windows.

cat deploy/crds/tridentorchestrator_cr.yaml
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