Skip to main content
La version française est une traduction automatique. La version anglaise prévaut sur la française en cas de divergence.

Personnalisez l'installation de l'opérateur Trident

Contributeurs

L'opérateur Trident vous permet de personnaliser l'installation Trident à l'aide des attributs de la TridentOrchestrator spécification. Si vous souhaitez personnaliser l'installation au-delà des TridentOrchestrator arguments autorisés, envisagez d'utiliser tridentctl pour générer des manifestes YAML personnalisés à modifier si nécessaire.

Présentation des pods de contrôleur et des nœuds

Trident s'exécute comme un seul pod de contrôleur, plus un pod de nœud sur chaque nœud worker du cluster. Le pod de nœud doit s'exécuter sur n'importe quel hôte sur lequel vous souhaitez potentiellement monter un volume Trident.

Kubernetes "sélecteurs de nœuds" et "tolérances et rejets" sont utilisés pour contraindre un pod à s'exécuter sur un nœud spécifique ou préféré. En utilisant le « ControllerPlugin » et NodePlugin, vous pouvez spécifier des contraintes et des remplacements.

  • Le plug-in du contrôleur gère le provisionnement et la gestion des volumes, tels que les snapshots et le redimensionnement.

  • Le plug-in du nœud permet d'attacher le stockage au nœud.

Options de configuration

Avertissement spec.namespace Est spécifié dans pour indiquer l'espace de noms dans TridentOrchestrator lequel Trident est installé. Ce paramètre ne peut pas être mis à jour après l'installation de Trident. Si vous essayez de le faire, l' TridentOrchestrator`état passe à `Failed. Trident n'est pas destiné à être migré entre les espaces de noms.

Ce tableau est plus détaillé TridentOrchestrator attributs.

Paramètre Description Valeur par défaut

namespace

Espace de noms pour installer Trident dans

"default"

debug

Activer le débogage pour Trident

false

enableForceDetach

ontap-san, ontap-san-economy et ontap-nas-economy uniquement. Fonctionne avec Kubernetes non-Grass Node Shutdown (NGN) pour autoriser les administrateurs du cluster à migrer en toute sécurité les workloads avec des volumes montés vers de nouveaux nœuds en cas de problème.

false

windows

Réglage sur true Active l'installation sur les nœuds de travail Windows.

false

cloudProvider

Réglez sur "Azure" Lors de l'utilisation d'identités gérées ou d'une identité de cloud sur un cluster AKS. Défini sur AWS lors de l'utilisation d'une identité de cloud sur un cluster EKS.

""

cloudIdentity

Défini sur l'identité de la charge de travail (« Azure.Workload.Identity/client-ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxx ») lors de l'utilisation de l'identité cloud sur un cluster AKS. Défini sur le rôle IAM AWS (« eks.amazonaws.com/role-arn: arn:aws:iam::123456:role/Trident-role ») lors de l'utilisation de l'identité cloud sur un cluster EKS.

""

IPv6

Installez Trident sur IPv6

faux

k8sTimeout

Délai d'expiration pour les opérations Kubernetes

30sec

silenceAutosupport

N'envoyez pas de packs AutoSupport à NetApp
automatiquement

false

autosupportImage

Image conteneur pour la télémétrie AutoSupport

"netapp/trident-autosupport:24.10"

autosupportProxy

Adresse/port d'un proxy pour l'envoi de AutoSupport
Télémétrie

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

uninstall

Indicateur utilisé pour désinstaller Trident

false

logFormat

Format de journalisation Trident à utiliser [TEXT,json]

"text"

tridentImage

Image Trident à installer

"netapp/trident:24.10"

imageRegistry

Chemin d'accès au registre interne, du format
<registry FQDN>[:port][/subpath]

"k8s.gcr.io" (Kubernetes 1.19+) ou "quay.io/k8scsi"

kubeletDir

Chemin d'accès au répertoire kubelet de l'hôte

"/var/lib/kubelet"

wipeout

Liste des ressources à supprimer pour effectuer une suppression complète de Trident

imagePullSecrets

Secrets pour extraire des images d'un registre interne

imagePullPolicy

Définit la stratégie de collecte d'image pour l'opérateur Trident. Les valeurs valides sont :
Always pour toujours tirer l'image.
IfNotPresent pour extraire l'image uniquement s'il n'existe pas déjà sur le nœud.
Never pour ne jamais tirer l'image.

IfNotPresent

controllerPluginNodeSelector

Sélecteurs de nœuds supplémentaires pour les pods. Suit le même format que pod.spec.nodeSelector.

Pas de valeur par défaut ; facultatif

controllerPluginTolerations

Remplace les tolérances Kubernetes pour les pods. Suit le même format que pod.spec.Tolerations.

Pas de valeur par défaut ; facultatif

nodePluginNodeSelector

Sélecteurs de nœuds supplémentaires pour les pods. Suit le même format que pod.spec.nodeSelector.

Pas de valeur par défaut ; facultatif

nodePluginTolerations

Remplace les tolérances Kubernetes pour les pods. Suit le même format que pod.spec.Tolerations.

Pas de valeur par défaut ; facultatif

nodePrep

Permet à Trident de préparer les nœuds du cluster Kubernetes à gérer les volumes à l'aide du protocole de stockage de données spécifié. Actuellement, iscsi est la seule valeur prise en charge.

Remarque Pour plus d'informations sur le formatage des paramètres du pod, reportez-vous à la section "Attribution de pods aux nœuds".

Détails sur le détachement forcé

Forcer le détachement est disponible pour ontap-san, ontap-san-economy et onatp-nas-economy uniquement. Avant d'activer le détachement forcé, l'arrêt non autorisé des nœuds (NGN) doit être activé sur le cluster Kubernetes. Pour plus d'informations, reportez-vous "Kubernetes : arrêt du nœud sans interruption"à .

Remarque Lorsque vous utilisez le ontap-nas-economy pilote, vous devez définir le autoExportPolicy paramètre de la configuration back-end sur true afin que Trident puisse restreindre l'accès au nœud Kubernetes avec le taint appliqué à l'aide de règles d'exportation gérées.
Avertissement Comme Trident repose sur les NGN Kubernetes, ne supprimez pas les out-of-service nœuds défectueux avant que toutes les charges de travail non tolérables ne soient replanifiées. L'application ou la suppression imprudemment de cet outil peut compromettre la protection des données back-end.

Lorsque l'administrateur du cluster Kubernetes a appliqué le node.kubernetes.io/out-of-service=nodeshutdown:NoExecute taint au nœud et enableForceDetach est défini sur true, Trident détermine l'état du nœud et :

  1. Cessez l'accès aux E/S back-end pour les volumes montés sur ce nœud.

  2. Marquer l'objet de nœud Trident comme dirty (non sécurisé pour les nouvelles publications).

    Remarque Le contrôleur Trident rejette les nouvelles demandes de volume publiées jusqu'à ce que le nœud soit de nouveau qualifié (après avoir été marqué comme dirty) par le pod de nœud Trident. Toutes les charges de travail planifiées avec une demande de volume persistant montée (même lorsque le nœud du cluster est sain et prêt) ne seront pas acceptées tant que Trident ne pourra pas vérifier le nœud clean (compatibilité pour les nouvelles publications).

Lorsque l'intégrité du nœud est restaurée et que la taint est supprimée, Trident :

  1. Identifiez et nettoyez les chemins publiés obsolètes sur le nœud.

  2. Si le nœud est dans un cleanable état (le taint hors service a été supprimé et le nœud est à Ready l'état) et que tous les chemins obsolètes et publiés sont propres, Trident reprépare le nœud en tant que et autorise la publication de clean nouveaux volumes sur le nœud.

Exemples de configurations

Vous pouvez utiliser les attributs dans Options de configuration lors de la définition TridentOrchestrator pour personnaliser votre installation.

Configuration personnalisée de base

Ceci est un exemple d'installation personnalisée de 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
Sélecteurs de nœuds

Cet exemple installe Trident avec des sélecteurs de nœuds.

apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  controllerPluginNodeSelector:
    nodetype: master
  nodePluginNodeSelector:
    storage: netapp
Nœuds worker Windows

Cet exemple installe Trident sur un noeud de travail 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és gérées sur un cluster AKS

Cet exemple installe Trident pour activer les identités gérées sur un cluster AKS.

apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  cloudProvider: "Azure"
Identité cloud sur un cluster AKS

Cet exemple installe Trident pour une utilisation avec une identité de cloud sur 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 sur un cluster EKS

Cet exemple installe Trident pour une utilisation avec une identité de cloud sur 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 pour GKE

Cet exemple installe Trident pour une utilisation avec une identité de cloud sur 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