Die deutsche Sprachversion wurde als Serviceleistung für Sie durch maschinelle Übersetzung erstellt. Bei eventuellen Unstimmigkeiten hat die englische Sprachversion Vorrang.

Fehlerbehebung

Beitragende

Verwenden Sie die hier angegebenen Hinweise zur Fehlerbehebung bei Problemen, die bei der Installation und Verwendung von Astra Trident möglicherweise auftreten können.

Anmerkung Astra Trident unterstützt Sie bei der Erstellung eines Support-Bundles mit tridentctl logs -a -n trident Senden an NetApp Support <Getting Help>.
Hinweis Eine umfassende Liste von Artikeln zur Fehlerbehebung finden Sie im "NetApp Knowledge Base (Anmeldung erforderlich)". Hier finden Sie auch Informationen zur Behebung von Problemen im Zusammenhang mit Astra "Hier".

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), Laufen kubectl -n trident describe deployment trident Und kubectl -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 nach level=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 von torc.

    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: Beispiel debugTraceFlags: {“api”:true, “method”:true,} Zum Abrufen von API-Aufrufen und Methodentraversierungen in den Trident-Protokollen. Vorhandene Back-Ends können eine debugTraceFlags Konfiguriert mit einem tridentctl 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, ob rpcbind Wird ausgeführt. Sie können den Status des überprüfen rpcbind Service durch Ausführen eines systemctl 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 mit tridentctl update backend Oder wenn Sie auf den Trident Pod verzichten, wird dieses Problem behoben.

  • Wenn Sie ein Kubernetes-Cluster aktualisieren und/oder Trident verwenden, um Beta-Volume-Snapshots zu verwenden, stellen Sie sicher, dass alle vorhandenen Alpha-Snapshot-CRS vollständig entfernt werden. Anschließend können Sie die verwenden tridentctl obliviate alpha-snapshot-crd Befehl zum Löschen von Alpha-Snapshot-CRDs. Siehe "Diesem Blog" Die Schritte zu verstehen, die bei der Migration von Alpha-Snapshots erforderlich sind.

  • 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 werden trident-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 zunächst die aus tridenctl uninstall Befehl zum Entfernen von Trident. Laden Sie die gewünschten herunter "Trident Version" Und installieren Sie mit tridentctl install Befehl. Eine Herabstufung sollte nur in Betracht gezogen werden, wenn keine neuen PVS erstellt wurden und keine Änderungen an bereits vorhandenen PVS/Back-Ends/Storage-Klassen vorgenommen wurden. Da Trident jetzt CRDs für die Statushaltung verwendet, verfügen alle erstellten Storage-Einheiten (Back-Ends, Storage-Klassen, PVS und Volume Snapshots) über associated CRD objects <Kubernetes CustomResourceDefinition Objects> Anstatt Daten, die in das PV geschrieben wurden, die von der früheren installierten Version von Trident verwendet wurden. Neu erstellte PVS können nicht verwendet werden, wenn sie auf eine frühere Version zurückverschoben werden. Änderungen an Objekten wie Back-Ends, PVS, Speicherklassen und Volume-Snapshots (erstellt/aktualisiert/gelöscht) werden Trident bei Downgraded nicht sichtbar. Das PV, das von der früheren Version von Trident verwendet wurde, ist für Trident weiterhin sichtbar. Wenn Sie zu einer früheren Version zurückkehren, wird der Zugriff auf PVS, die bereits mit der älteren Version erstellt wurden, nicht unterbrochen, es sei denn, sie wurden aktualisiert.

  • Um Trident vollständig zu entfernen, führen Sie den aus tridentctl obliviate crd Befehl. Dadurch werden alle CRD-Objekte entfernt und die CRDs werden nicht definiert. Trident verwaltet keine PVS mehr, die bereits bereitgestellt wurden.

    Anmerkung Trident muss danach von Grund auf neu konfiguriert werden.
  • Nach erfolgreicher Installation, wenn ein PVC in der stecken bleibt Pending Phase, Ausführen kubectl describe pvc Kann zusätzliche Informationen darüber angeben, warum Trident ein PV für diese PVC nicht bereitgestellt hat.

Fehlerbehebung bei einer nicht erfolgreichen Trident-Implementierung mithilfe des Betreibers

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, sollten Sie einen Blick auf das werfen 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 über eine Instanz von Trident verfügen kann, stellt der Operator sicher, dass zu einem beliebigen Zeitpunkt nur eine aktive Instanz vorhanden ist `TridentOrchestrator Die sie erstellen kann.

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 können klar sehen, dass die Pods nicht vollständig initialisiert werden können, da ein oder mehrere Container-Images 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 mit der geänderten und genauen Definition.

Fehlerbehebung bei einer nicht erfolgreichen 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.