Personnalisez l'installation de l'opérateur Trident
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 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 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 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
|
|
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 | ||||
|---|---|---|---|---|---|---|
|
Espace de noms pour installer Trident dans |
|
||||
|
Activer le débogage pour Trident |
|
||||
|
|
|
||||
|
Réglage sur |
|
||||
|
Défini sur |
|
||||
|
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. Défini sur 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. |
|
||||
|
Installez Trident sur IPv6 |
faux |
||||
|
Délai d'expiration pour les opérations Kubernetes.
|
|
||||
|
N'envoyez pas de packs AutoSupport à NetApp |
|
||||
|
Image conteneur pour la télémétrie AutoSupport |
|
||||
|
Adresse/port d'un proxy pour l'envoi de AutoSupport |
|
||||
|
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 de l'hôte |
|
||||
|
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 collecte d'image 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 |
Pas de valeur par défaut ; facultatif |
||||
|
Remplace les tolérances Kubernetes pour les pods. Suit le même format que |
Pas de valeur par défaut ; facultatif |
||||
|
Sélecteurs de nœuds supplémentaires pour les pods. Suit le même format que |
Pas de valeur par défaut ; facultatif |
||||
|
Remplace les tolérances Kubernetes pour les pods. Suit le même format que |
Pas de valeur par défaut ; facultatif |
||||
|
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,
|
|||||
|
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 |
||||
|
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 pour gérer l'allocation des ressources dans Kubernetes. Pour plus d'informations sur la configuration des demandes et des limites de ressources, veuillez consulter la documentation."Gestion des ressources pour les pods et les conteneurs" .
|
|
||||
|
Activer HTTPS pour le point de terminaison des métriques Prometheus. |
faux |
||||
|
Permet 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 le trafic dorsal dans un réseau multi-foyers. |
faux |
|
|
Pour plus d'informations sur le formatage des paramètres du pod, reportez-vous à la section "Attribution de pods aux nœuds". |
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
Configuration des requêtes et 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 uniquement à des fins de démonstration. Ajustez ces valeurs en fonction de votre environnement et de vos exigences en matière de 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 uniquement à des fins de démonstration. Ajustez ces valeurs en fonction de votre environnement et de vos exigences en matière de 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