Personnaliser l'installation de l'opérateur Trident
L'opérateur Trident vous permet de personnaliser l'installation de Trident à l'aide des attributs dans la `TridentOrchestrator`spec. Si vous souhaitez personnaliser l'installation au-delà de ce que les arguments `TridentOrchestrator`permettent, envisagez d'utiliser `tridentctl`pour générer des manifestes YAML personnalisés à modifier selon vos besoins.
Comprendre les pods de contrôleur et les pods de nœud
Trident s'exécute sous la forme d'un pod de contrôleur unique et d'un pod de nœud sur chaque nœud de travail du cluster. Le pod de nœud doit être exécuté sur tout hôte sur lequel vous souhaitez potentiellement monter un volume Trident.
Kubernetes "sélecteurs de nœuds" et "tolérances et taints" 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 substitutions.
-
Le plugin de contrôleur gère le provisionnement et la gestion des volumes, comme 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 où Trident est installé. Ce paramètre ne peut pas être mis à jour après l'installation de Trident. Tenter de le faire provoque le changement du statut TridentOrchestrator en Failed. Trident n'est pas destiné à être migré entre des espaces de noms.
|
Ce tableau détaille TridentOrchestrator les attributs.
| Paramètre | Description | Défaut | ||||
|---|---|---|---|---|---|---|
|
Espace de noms dans lequel installer Trident |
|
||||
|
Activer le débogage pour Trident |
|
||||
|
|
|
||||
|
Le paramètre |
|
||||
|
Définir sur |
|
||||
|
Définissez sur workload identity ("azure.workload.identity/client-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx") lors de l'utilisation de l'identité cloud sur un cluster AKS. Définissez sur AWS IAM role ("'eks.amazonaws.com/role-arn: arn:aws:iam::123456:role/trident-role'") lors de l'utilisation de l'identité cloud sur un cluster EKS. Définissez sur cloud identity ("'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 |
false |
||||
|
Délai d'attente pour les opérations Kubernetes.
|
|
||||
|
N'envoyez pas automatiquement les bundles d'autosupport à NetApp |
|
||||
|
L'image conteneur pour la télémétrie Autosupport |
|
||||
|
L'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 [text,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 |
|
||||
|
Une liste des ressources à supprimer pour effectuer une suppression complète de Trident |
|||||
|
Secrets pour extraire des images d'un registre interne |
|||||
|
Définit la stratégie de récupération 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 à gérer les volumes à l'aide du protocole de stockage des données spécifié. Actuellement,
|
|||||
|
Limite de requêtes par seconde (QPS) utilisée par le contrôleur lors de la communication avec le serveur d'API Kubernetes. La valeur de Burst est définie automatiquement en fonction de la valeur QPS. |
|
||||
|
Permet les opérations simultanées du contrôleur Trident pour un débit amélioré.
|
false |
||||
|
Définit les limites et les requêtes de ressources Kubernetes pour le contrôleur Trident et les pods de nœuds. Vous pouvez configurer le processeur et la mémoire de chaque conteneur et sidecar afin de gérer l'allocation des ressources dans Kubernetes. Pour plus d'informations sur la configuration des demandes et des limites de ressources, consultez "Gestion des ressources pour les pods et les conteneurs".
|
|
||||
|
Activer HTTPS pour le point de terminaison des métriques Prometheus. |
false |
||||
|
Active la mise en réseau de l'hôte pour le contrôleur Trident. Ceci est utile lorsque vous souhaitez séparer le trafic frontal et dorsal dans un réseau multi-home. |
false |
|
|
Pour plus d'informations sur la mise en forme des paramètres de pod, consultez "Affectation des pods aux nœuds". |
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
Cet exemple, créé après l'exécution de la 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 la commande cat deploy/crds/tridentorchestrator_cr.yaml, 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
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é 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
Configuration des requêtes et des limites de ressources Kubernetes pour le contrôleur Trident et les pods de nœuds Trident Linux
Cet exemple configure les demandes et les limites de ressources Kubernetes pour le contrôleur Trident et les pods de nœuds Trident Linux.
|
|
Avertissement : Les valeurs de requête et de limite fournies dans cet exemple sont données à titre indicatif uniquement. Ajustez ces valeurs en fonction de votre environnement et de vos besoins en charge de travail. |
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
Configuration des requêtes et des limites de ressources Kubernetes pour le contrôleur Trident et les pods de nœuds Trident Windows et Linux
Cet exemple configure les demandes et les limites de ressources Kubernetes pour le contrôleur Trident et les pods de nœuds Trident Windows et Linux.
|
|
Avertissement : Les valeurs de requête et de limite fournies dans cet exemple sont données à titre indicatif uniquement. Ajustez ces valeurs en fonction de votre environnement et de vos besoins en charge de travail. |
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