Dépannage
Utilisez les indications fournies ici pour résoudre les problèmes que vous pourriez rencontrer lors de l'installation et de l'utilisation de Trident.
|
|
Pour obtenir de l'aide concernant Trident, créez un dossier de support à l'aide de tridentctl logs -a -n trident et envoyez-le à NetApp Support.
|
Dépannage général
-
Si le pod Trident ne démarre pas correctement (par exemple, lorsque le pod Trident est bloqué dans la
ContainerCreatingphase avec moins de deux conteneurs prêts), exécuterkubectl -n trident describe deployment tridentetkubectl -n trident describe pod trident--**peut fournir des informations supplémentaires. L'obtention des journaux kubelet (par exemple, viajournalctl -xeu kubelet) peut également être utile. -
S'il n'y a pas assez d'informations dans les journaux Trident, vous pouvez essayer d'activer le mode débogage pour Trident en passant le
-dindicateur au paramètre d'installation selon votre option d'installation.Ensuite, confirmez que le mode débogage est activé en utilisant
./tridentctl logs -n tridentet en recherchantlevel=debug msgdans le journal.- Installé avec Operator
-
kubectl patch torc trident -n <namespace> --type=merge -p '{"spec":{"debug":true}}'Cela redémarrera tous les pods Trident, ce qui peut prendre plusieurs secondes. Vous pouvez le vérifier en observant la colonne « AGE » dans la sortie de
kubectl get pod -n trident.Pour Trident 20.07 et 20.10, utilisez
tprovà la place detorc. - Installé avec Helm
-
helm upgrade <name> trident-operator-21.07.1-custom.tgz --set tridentDebug=true`
- Installé avec tridentctl
-
./tridentctl uninstall -n trident ./tridentctl install -d -n trident
-
Vous pouvez également obtenir les journaux de débogage pour chaque backend en incluant
debugTraceFlagsdans la définition de votre backend. Par exemple, incluezdebugTraceFlags: {"api":true, "method":true,}pour obtenir les appels d’API et les parcours de méthodes dans les journaux Trident. Les backends existants peuvent avoirdebugTraceFlagsconfiguré avec untridentctl backend update. -
Lors de l'utilisation de Red Hat Enterprise Linux CoreOS (RHCOS), assurez-vous que
iscsidest activé sur les nœuds de travail et démarré par défaut. Cela peut être fait en utilisant OpenShift MachineConfigs ou en modifiant les modèles d'ignition. -
Un problème courant que vous pourriez rencontrer lors de l'utilisation de Trident "Azure NetApp Files" est lorsque les secrets du locataire et du client proviennent d'un enregistrement d'application avec des autorisations insuffisantes. Pour une liste complète des exigences de Trident, consultez la "Azure NetApp Files" configuration.
-
En cas de problème lors du montage d'un PV dans un conteneur, assurez-vous que `rpcbind`est installé et en cours d'exécution. Utilisez le gestionnaire de paquets requis pour le système d'exploitation hôte et vérifiez si `rpcbind`est en cours d'exécution. Vous pouvez vérifier l'état du `rpcbind`service en exécutant un `systemctl status rpcbind`ou une commande équivalente.
-
Si un backend Trident signale qu'il est dans l'état
failedalors qu'il fonctionnait auparavant, cela est probablement dû à une modification des identifiants SVM/admin associés au backend. La mise à jour des informations du backend à l'aide detridentctl update backendou le redémarrage du pod Trident résoudra ce problème. -
Si vous rencontrez des problèmes d'autorisation lors de l'installation de Trident avec Docker comme environnement d'exécution de conteneurs, essayez d'installer Trident avec le
--in cluster=falseflag. Cela n'utilisera pas de pod d'installation et évitera les problèmes d'autorisation rencontrés à cause de l'utilisateurtrident-installer. -
Utilisez la
uninstall parameter <Uninstalling Trident>pour nettoyer après une exécution ayant échoué. Par défaut, le script ne supprime pas les CRDs créées par Trident, ce qui permet de désinstaller et de réinstaller en toute sécurité, même dans un déploiement en cours d'exécution. -
Si vous souhaitez revenir à une version antérieure de Trident, commencez par exécuter la commande
tridentctl uninstallpour supprimer Trident. Téléchargez la version souhaitée "Version Trident" et installez-la à l'aide de la commandetridentctl install. -
Après une installation réussie, si un PVC est bloqué dans la
Pendingphase, exécuterkubectl describe pvcpeut fournir des informations supplémentaires sur la raison pour laquelle Trident n'a pas pu provisionner un PV pour ce PVC.
Déploiement Trident infructueux avec l'opérateur
Si vous déployez Trident à l'aide de l'opérateur, l'état TridentOrchestrator change de Installing à Installed. Si vous observez le statut Failed et que l'opérateur ne parvient pas à se rétablir automatiquement, vous devez vérifier les journaux de l'opérateur en exécutant la commande suivante :
tridentctl logs -l trident-operator
L'analyse des journaux du conteneur trident-operator peut permettre d'identifier l'origine du problème. Par exemple, l'une de ces difficultés pourrait être l'impossibilité de récupérer les images de conteneur requises auprès des registres en amont dans un environnement airgapped.
Pour comprendre pourquoi l'installation de Trident a échoué, vous devriez consulter l' `TridentOrchestrator`état.
kubectl describe torc trident-2
Name: trident-2
Namespace:
Labels: <none>
Annotations: <none>
API Version: trident.netapp.io/v1
Kind: TridentOrchestrator
...
Status:
Current Installation Params:
IPv6:
Autosupport Hostname:
Autosupport Image:
Autosupport Proxy:
Autosupport Serial Number:
Debug:
Image Pull Secrets: <nil>
Image Registry:
k8sTimeout:
Kubelet Dir:
Log Format:
Silence Autosupport:
Trident Image:
Message: Trident is bound to another CR 'trident'
Namespace: trident-2
Status: Error
Version:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning Error 16s (x2 over 16s) trident-operator.netapp.io Trident is bound to another CR 'trident'
Cette erreur indique qu'il existe déjà une TridentOrchestrator qui a été utilisée pour installer Trident. Étant donné que chaque cluster Kubernetes ne peut avoir qu'une seule instance de Trident, l'opérateur s'assure qu'à tout moment, il n'existe qu'une seule TridentOrchestrator active qu'il peut créer.
De plus, l'observation de l'état des pods Trident peut souvent indiquer si quelque chose ne va pas.
kubectl get pods -n trident NAME READY STATUS RESTARTS AGE trident-csi-4p5kq 1/2 ImagePullBackOff 0 5m18s trident-csi-6f45bfd8b6-vfrkw 4/5 ImagePullBackOff 0 5m19s trident-csi-9q5xc 1/2 ImagePullBackOff 0 5m18s trident-csi-9v95z 1/2 ImagePullBackOff 0 5m18s trident-operator-766f7b8658-ldzsv 1/1 Running 0 8m17s
On constate clairement que les pods ne peuvent pas s'initialiser complètement car une ou plusieurs images de conteneur n'ont pas été récupérées.
Pour résoudre le problème, vous devez modifier la TridentOrchestrator CR. Vous pouvez également supprimer TridentOrchestrator, et en créer une nouvelle avec la définition modifiée et correcte.
Déploiement Trident infructueux utilisant tridentctl
Pour tenter de comprendre ce qui s'est mal passé, vous pouvez relancer le programme d'installation en utilisant l'argument -d, ce qui activera le mode débogage et vous aidera à comprendre quel est le problème :
./tridentctl install -n trident -d
Après avoir résolu le problème, vous pouvez nettoyer l'installation comme suit, puis exécuter la commande tridentctl install à nouveau :
./tridentctl uninstall -n trident INFO Deleted Trident deployment. INFO Deleted cluster role binding. INFO Deleted cluster role. INFO Deleted service account. INFO Removed Trident user from security context constraint. INFO Trident uninstallation succeeded.
Supprimez complètement Trident et les CRD
Vous pouvez supprimer complètement Trident ainsi que toutes les CRDs créées et les ressources personnalisées associées.
|
|
Cette opération est irréversible. Ne la réalisez pas à moins de souhaiter une réinstallation complète de Trident. Pour désinstaller Trident sans supprimer les CRD, consultez "Désinstaller Trident". |
Pour désinstaller Trident et supprimer complètement les CRD à l'aide de l'opérateur Trident :
kubectl patch torc <trident-orchestrator-name> --type=merge -p '{"spec":{"wipeout":["crds"],"uninstall":true}}'
Pour désinstaller Trident et supprimer complètement les CRD à l'aide de Helm :
kubectl patch torc trident --type=merge -p '{"spec":{"wipeout":["crds"],"uninstall":true}}'
Pour supprimer complètement les CRD après la désinstallation de Trident en utilisant tridentctl
tridentctl obliviate crd
Échec du déstockage du nœud NVMe avec les espaces de noms de blocs bruts RWX sous Kubernetes 1.26
Si vous utilisez Kubernetes 1.26, la suppression des nœuds peut échouer lors de l'utilisation de NVMe/TCP avec des espaces de noms de blocs bruts RWX. Les scénarios suivants proposent des solutions de contournement à cette défaillance. Vous pouvez également mettre à niveau Kubernetes vers 1.27.
Suppression de l'espace de noms et du pod
Considérez un scénario où vous avez un espace de noms géré par Trident (volume persistant NVMe) attaché à un pod. Si vous supprimez l’espace de noms directement depuis le backend ONTAP, le processus de désactivation se bloque après que vous ayez tenté de supprimer le pod. Ce scénario n’affecte pas le cluster Kubernetes ni les autres fonctionnalités.
Démontez le volume persistant (correspondant à cet espace de noms) du nœud respectif et supprimez-le.
LIFs de données bloquées
If you block (or bring down) all the dataLIFs of the NVMe Trident backend, the unstaging process gets stuck when you attempt to delete the pod. In this scenario, you cannot run any NVMe CLI commands on the Kubernetes node. .Solution de contournement Activez les dataLIFS pour rétablir la pleine fonctionnalité.
Suppression du mappage d'espace de noms
If you remove the `hostNQN` of the worker node from the corresponding subsystem, the unstaging process gets stuck when you attempt to delete the pod. In this scenario, you cannot run any NVMe CLI commands on the Kubernetes node. .Solution de contournement Ajoutez le `hostNQN` au sous-système.
Les clients NFSv4.2 signalent « invalid argument » après la mise à niveau ONTAP alors qu'ils s'attendent à ce que « v4.2-xattrs » soit activé
Après la mise à niveau de ONTAP, les clients NFSv4.2 peuvent signaler des erreurs « argument invalide » lors de la tentative de montage des exports NFSv4.2. Ce problème survient lorsque l’ `v4.2-xattrs`option n’est pas activée sur le SVM. Solution de contournement : activez l’ `v4.2-xattrs`option sur le SVM ou mettez à niveau vers ONTAP 9.12.1 ou une version ultérieure, où cette option est activée par défaut.