Fehlerbehebung
Verwenden Sie die hier angegebenen Hinweise zur Fehlerbehebung bei Problemen, die bei der Installation und Verwendung von Astra Trident möglicherweise auftreten können.
Allgemeine Fehlerbehebung
-
Falls der Trident Pod nicht richtig angezeigt wird (z. B. wenn er im nicht mehr ordnungsgemäß funktioniert
ContainerCreating
Phase mit weniger als zwei einsatzbereiten Containern), Laufenkubectl -n trident describe deployment trident
Undkubectl -n trident describe pod trident--**
Dieser Service ermöglicht Ihnen Einblick. Abrufen von Kubelet-Protokollen (z. B. über)journalctl -xeu kubelet
) Kann auch hilfreich sein. -
Wenn die Informationen in den Trident-Protokollen nicht genügend sind, können Sie versuchen, den Debug-Modus für Trident zu aktivieren, indem Sie den übergeben
-d
Markieren Sie anhand Ihrer Installationsoption den Installationsparameter.Bestätigen Sie dann, dass Debug mit eingestellt ist
./tridentctl logs -n trident
Und suchen nachlevel=debug msg
Im Protokoll.- Mit Operator installiert
-
kubectl patch torc trident -n <namespace> --type=merge -p '{"spec":{"debug":true}}'
Dadurch werden alle Trident Pods neu gestartet, was mehrere Sekunden dauern kann. Sie können dies überprüfen, indem Sie die Spalte „ALTER“ in der Ausgabe von beobachten
kubectl get pod -n trident
.Für den Einsatz von Astra Trident 20.07 und 20.10
tprov
Anstelle vontorc
. - Installiert mit Helm
-
helm upgrade <name> trident-operator-21.07.1-custom.tgz --set tridentDebug=true`
- Mit tridentctl installiert
-
./tridentctl uninstall -n trident ./tridentctl install -d -n trident
-
Sie können auch Debug-Protokolle für jedes Backend erhalten, indem Sie eingeschlossen
debugTraceFlags
Back-End-Definition: BeispieldebugTraceFlags: {“api”:true, “method”:true,}
Zum Abrufen von API-Aufrufen und Methodentraversierungen in den Trident-Protokollen. Vorhandene Back-Ends können einedebugTraceFlags
Konfiguriert mit einemtridentctl backend update
. -
Stellen Sie bei der Verwendung von RedHat CoreOS sicher, dass
iscsid
Ist auf den Worker-Knoten aktiviert und standardmäßig gestartet. Dies kann mit OpenShift MachineConfigs oder durch Ändern der Zündvorlagen erfolgen. -
Ein häufiges Problem kann bei der Verwendung von Trident mit auftreten "Azure NetApp Dateien" Wenn die Mandanten- und Client-Geheimnisse von einer App-Registrierung mit unzureichenden Berechtigungen stammen. Eine vollständige Liste der Trident-Anforderungen finden Sie unter "Azure NetApp Dateien" Konfiguration.
-
Bei Problemen mit der Montage eines PV in einem Behälter, darauf achten
rpcbind
Wird installiert und ausgeführt. Verwenden Sie den erforderlichen Paket-Manager für das Host-Betriebssystem, und überprüfen Sie, obrpcbind
Wird ausgeführt. Sie können den Status des überprüfenrpcbind
Service durch Ausführen einessystemctl status rpcbind
Oder gleichwertige Informationen. -
Wenn ein Trident Back-End meldet, dass es sich im befindet
failed
Status, obwohl er zuvor gearbeitet hat, wird wahrscheinlich dadurch verursacht, dass die mit dem Backend verbundenen SVM/Admin-Berechtigungen geändert werden. Aktualisieren der Back-End-Informationen mittridentctl update backend
Oder wenn Sie auf den Trident Pod verzichten, wird dieses Problem behoben. -
Wenn bei der Installation von Trident mit Docker als Container-Laufzeit Probleme mit Berechtigungen auftreten, versuchen Sie die Installation von Trident mit dem
--in cluster=false
Flagge. Dadurch wird kein Installateur-Pod verwendet und es werden keine Berechtigungs-Probleme vermieden, die aufgrund des angezeigt werdentrident-installer
Benutzer: -
Verwenden Sie die
uninstall parameter <Uninstalling Trident>
Zum Reinigen nach einem fehlgeschlagenen Lauf. Standardmäßig werden die von Trident erstellten CRDs nicht vom Skript entfernt, sodass es sicher ist, auch in einer laufenden Implementierung zu deinstallieren und wieder zu installieren. -
Wenn Sie ein Downgrade auf eine frühere Version von Trident durchführen möchten, führen Sie zuerst die aus
tridentctl uninstall
Befehl zum Entfernen von Trident. Laden Sie die gewünschten herunter "Trident Version" Und installieren Sie mittridentctl install
Befehl. -
Nach erfolgreicher Installation, wenn ein PVC in der stecken bleibt
Pending
Phase, Ausführenkubectl describe pvc
Kann zusätzliche Informationen darüber angeben, warum Trident ein PV für diese PVC nicht bereitgestellt hat.
Die Bereitstellung von Trident mit dem Operator ist fehlgeschlagen
Wenn Sie Trident über den Operator implementieren, lautet der Status von TridentOrchestrator
Änderungen von Installing
Bis Installed
. Wenn Sie die beobachten Failed
Der Status, und der Operator kann sich nicht selbst wiederherstellen. Sie sollten die Protokolle des Operators überprüfen, indem Sie folgenden Befehl ausführen:
tridentctl logs -l trident-operator
Das Nachführen der Protokolle des Dreizack-Operators kann auf den Punkt verweisen, an dem das Problem liegt. Ein solches Problem könnte beispielsweise darin liegen, dass die erforderlichen Container-Images nicht von vorgelagerten Registern in einer Airgoed-Umgebung übertragen werden können.
Um zu verstehen, warum die Installation von Trident nicht erfolgreich war, you
Sehen Sie sich die an TridentOrchestrator
Status:
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'
Dieser Fehler weist darauf hin, dass bereits ein vorhanden ist TridentOrchestrator
Darüber wurde Trident installiert. Da jeder Kubernetes-Cluster nur kann
Haben Sie eine Instanz von Trident, der Operator sorgt dafür, dass auf jeden Fall
Zeit gibt es nur einen aktiven TridentOrchestrator
Das kann er
Erstellen.
Zusätzlich können Sie durch die Beobachtung des Status der Trident Pods oft angeben, ob etwas nicht richtig ist.
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
Sie sehen deutlich, dass die Pods nicht vollständig initialisiert werden können
Weil ein oder mehrere Container-Bilder nicht abgerufen wurden.
Um das Problem zu beheben, sollten Sie die bearbeiten TridentOrchestrator
CR.
Alternativ können Sie auch löschen `TridentOrchestrator`Und erstellen Sie eine neue
Eine mit der geänderten und genauen Definition.
Erfolglose Trident-Implementierung mit tridentctl
Um herauszufinden, was schief gelaufen ist, können Sie den Installer mit dem erneut ausführen -d
Argument, das den Debug-Modus aktiviert und Ihnen hilft zu verstehen, was das Problem ist:
./tridentctl install -n trident -d
Nachdem Sie das Problem behoben haben, können Sie die Installation wie folgt bereinigen und dann den ausführen tridentctl install
Befehl erneut:
./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.
Entfernen Sie Astra Trident und CRDs vollständig
Sie können Astra Trident und alle erstellten CRDs und zugehörigen benutzerdefinierten Ressourcen vollständig entfernen.
|
Dieser Vorgang kann nicht rückgängig gemacht werden. Tun Sie dies nur, wenn Sie eine völlig frische Installation von Astra Trident wollen. Informationen zur Deinstallation von Astra Trident ohne Entfernen von CRDs finden Sie unter "Deinstallieren Sie Astra Trident". |
So deinstallieren Sie Astra Trident und entfernen Sie CRDs vollständig mit dem Trident Operator:
kubectl patch torc <trident-orchestrator-name> --type=merge -p '{"spec":{"wipeout":["crds"],"uninstall":true}}'
So deinstallieren Sie Astra Trident und entfernen Sie CRDs vollständig mit Helm:
kubectl patch torc trident --type=merge -p '{"spec":{"wipeout":["crds"],"uninstall":true}}'
So entfernen Sie CRDs nach der Deinstallation von Astra Trident vollständig mit tridentctl
tridentctl obliviate crd
Fehler beim Entstopen des NVMe-Node bei den RWX-RAW-Block-Namespaces o Kubernetes 1.26
Wenn Sie Kubernetes 1.26 ausführen, schlägt das Entstauen der Nodes möglicherweise fehl, wenn NVMe/TCP mit RWX-unformatierten Block-Namespaces verwendet wird. Die folgenden Szenarien bieten eine Behelfslösung für den Fehler. Alternativ können Sie ein Upgrade von Kubernetes auf 1.27 durchführen.
Namespace und Pod wurden gelöscht
Stellen Sie sich ein Szenario vor, in dem ein von Astra Trident gemanagter Namespace (persistentes Volume NVMe) mit einem Pod verbunden ist. Wenn Sie den Namespace direkt aus dem ONTAP-Backend löschen, bleibt der Entstempungsprozess hängen, nachdem Sie versucht haben, den Pod zu löschen. Dieses Szenario beeinträchtigt nicht das Kubernetes-Cluster oder andere Funktionen.
Heben Sie das persistente Volume (entsprechend dem Namespace) vom entsprechenden Node auf und löschen Sie es.
Blockierte Daten-LIFs
If you block (or bring down) all the dataLIFs of the NVMe Astra 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. .Behelfslösung Das DataLIFS wird zur Wiederherstellung der vollen Funktionalität angezeigt.
Namespace-Zuordnung wurde gelöscht
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. .Behelfslösung Fügen Sie die hinzu `hostNQN` Zurück zum Subsystem.