Personnalisation de l'installation de l'opérateur Trident
L'opérateur Trident vous permet de personnaliser l'installation de Trident à l'aide des attributs de TridentOrchestrator spécification Si vous souhaitez personnaliser l'installation au-delà de ce que TridentOrchestrator Les arguments le permettent, envisagez d'utiliser tridentctl pour générer des manifestes YAML personnalisés à modifier selon les besoins.
Comprendre les pods de contrôleur et les pods de nœud
Trident s'exécute sous la forme d'un seul pod de contrôleur, plus un pod de nœud sur chaque nœud de travail du cluster. Le pod du nœud doit être en cours d'exécution sur tout hôte sur lequel vous souhaitez potentiellement monter un volume Trident .
Kubernetes"sélecteurs de nœuds" et"tolérances et contaminations" sont utilisées pour contraindre un pod à s'exécuter sur un nœud spécifique ou préféré. Utilisation du ControllerPlugin et NodePlugin Vous pouvez spécifier des contraintes et des remplacements.
-
Le plugin de contrôleur gère le provisionnement et la gestion des volumes, tels que les instantanés et le redimensionnement.
-
Le plugin de nœud gère la connexion du stockage au nœud.
Options de configuration
|
|
spec.namespace`est spécifié dans `TridentOrchestrator pour indiquer l'espace de noms dans lequel Trident est installé. Ce paramètre *ne peut pas être mis à jour après l'installation de Trident *. Toute tentative en ce sens provoque TridentOrchestrator statut à changer en Failed . Trident n'est pas conçu pour être migré entre espaces de noms.
|
Ce tableau détaille TridentOrchestrator attributs.
| Paramètre | Description | Défaut | ||
|---|---|---|---|---|
|
Espace de noms pour installer Trident dans |
|
||
|
Activer le débogage pour Trident |
|
||
|
|
|
||
|
Réglage de |
|
||
|
Réglé sur |
|
||
|
Définissez l'identité de la charge de travail (« azure.workload.identity/client-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx ») lors de l'utilisation de l'identité cloud sur un cluster AKS. Définissez le rôle AWS IAM (« 'eks.amazonaws.com/role-arn: arn:aws:iam::123456:role/trident-role' ») lors de l'utilisation de l'identité cloud sur un cluster EKS. Configurer l'identité cloud (« iam.gke.io/gcp-service-account : xxxx@mygcpproject.iam.gserviceaccount.com ») lors de l'utilisation de l'identité cloud sur un cluster GKE. |
|
||
|
Installer Trident sur IPv6 |
FAUX |
||
|
Délai d'expiration pour les opérations Kubernetes.
|
|
||
|
N’envoyez pas automatiquement les packages d’autosupport à NetApp. |
|
||
|
L'image conteneur pour la télémétrie Autosupport |
|
||
|
Adresse/port d'un proxy pour l'envoi des données de télémétrie Autosupport |
|
||
|
Un indicateur utilisé pour désinstaller Trident |
|
||
|
Format de journalisation Trident à utiliser [texte,json] |
|
||
|
Image Trident à installer |
|
||
|
Chemin d'accès au registre interne, du format |
|
||
|
Chemin d'accès au répertoire kubelet sur l'hôte |
|
||
|
Liste des ressources à supprimer pour désinstaller complètement Trident |
|||
|
Secrets pour extraire des images d'un registre interne |
|||
|
Définit la politique d'extraction d'images pour l'opérateur Trident . Les valeurs valides sont : |
|
||
|
Sélecteurs de nœuds supplémentaires pour les pods. Suit le même format que |
Aucune valeur par défaut ; optionnel |
||
|
Remplace les tolérances Kubernetes pour les pods. Suit le même format que |
Aucune valeur par défaut ; optionnel |
||
|
Sélecteurs de nœuds supplémentaires pour les pods. Suit le même format que |
Aucune valeur par défaut ; optionnel |
||
|
Remplace les tolérances Kubernetes pour les pods. Suit le même format que |
Aucune valeur par défaut ; optionnel |
||
|
Permet à Trident de préparer les nœuds du cluster Kubernetes pour gérer les volumes à l’aide du protocole de stockage de données spécifié. Actuellement,
|
|||
|
La limite de requêtes par seconde (QPS) utilisée par le contrôleur lors de la communication avec le serveur API Kubernetes. La valeur Burst est définie automatiquement en fonction de la valeur QPS. |
|
||
|
Permet des opérations simultanées du contrôleur Trident pour un débit amélioré.
|
FAUX |
|
|
Pour plus d'informations sur la mise en forme des paramètres de pod, consultez"Affectation des pods aux nœuds" . |
Détails concernant le détachement forcé
Le détachement forcé est disponible pour ontap-san , ontap-san-economy , ontap-nas , et ontap-nas-economy seulement. Avant d’activer le détachement forcé, l’arrêt non gracieux du nœud (NGNS) doit être activé sur le cluster Kubernetes. NGNS est activé par défaut pour Kubernetes 1.28 et supérieur. Pour plus d'informations, veuillez consulter"Kubernetes : Arrêt brutal d'un nœud" .
|
|
Lors de l'utilisation du ontap-nas ou ontap-nas-economy conducteur, vous devez configurer le autoExportPolicy paramètre dans la configuration du backend à true afin que Trident puisse restreindre l'accès depuis le nœud Kubernetes auquel la contamination a été appliquée à l'aide de politiques d'exportation gérées.
|
|
|
Étant donné que Trident repose sur Kubernetes NGNS, ne le supprimez pas. out-of-service les données provenant d'un nœud défaillant sont conservées jusqu'à ce que toutes les charges de travail intolérables soient reprogrammées. L'application ou la suppression imprudente de la contamination peut compromettre la protection des données du système dorsal.
|
Lorsque l'administrateur du cluster Kubernetes a appliqué le node.kubernetes.io/out-of-service=nodeshutdown:NoExecute contamination du nœud et enableForceDetach est réglé sur true Trident déterminera l'état du nœud et :
-
Interrompez l'accès aux E/S du système dorsal pour les volumes montés sur ce nœud.
-
Marquer l'objet nœud Trident comme
dirty(Ne convient pas aux nouvelles publications).Le contrôleur Trident rejettera les nouvelles demandes de publication de volume jusqu'à ce que le nœud soit requalifié (après avoir été marqué comme dirty) par le pod de nœud Trident . Les charges de travail planifiées avec un PVC monté (même après que le nœud du cluster soit opérationnel) ne seront pas acceptées tant que Trident n'aura pas vérifié le nœud.clean(sans danger pour les nouvelles publications).
Une fois l'intégrité du nœud rétablie et la contamination supprimée, Trident effectuera les opérations suivantes :
-
Identifier et supprimer les chemins publiés obsolètes sur le nœud.
-
Si le nœud se trouve dans un
cleanableétat (la contamination hors service a été supprimée et le nœud est enReadySi l'état est correct et que tous les chemins publiés obsolètes sont propres, Trident réadmettra le nœud.cleanet autoriser les nouveaux volumes publiés sur le nœud.
Exemples de configurations
Vous pouvez utiliser les attributs dansOptions de configuration lors de la définition TridentOrchestrator pour personnaliser votre installation.
configuration personnalisée de base
Cet exemple, créé après l'exécution de cat deploy/crds/tridentorchestrator_cr_imagepullsecrets.yaml commande, représente une installation personnalisée de base :
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 de travail Windows
Cet exemple, créé après l'exécution de cat deploy/crds/tridentorchestrator_cr.yaml commande, installe Trident sur un nœud de travail Windows.
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
windows: true
Gestion des identités 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é 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é 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é 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