Debugging für IBM Cloud Object Storage-Fehler

Überprüfen Sie die Optionen zur Fehlersuche in Object Storage und finden Sie die Grundursachen von Fehlern.

Es wird überprüft, ob der Pod, der Ihre Speicherinstanz anhängt, erfolgreich implementiert wurde

Folgen Sie den Schritten, um alle Fehlermeldungen im Zusammenhang mit der Pod-Bereitstellung zu überprüfen.

  1. Listen Sie die Pods in Ihrem Cluster auf. Ein Pod wurde erfolgreich bereitgestellt, wenn er den Status Running (Aktiv) anzeigt.

    kubectl get pods
    
  2. Rufen Sie die Details Ihres Pods ab und überprüfen Sie alle Fehlernachrichten, die im Abschnitt Events Ihrer CLI-Ausgabe angezeigt werden.

    kubectl describe pod <pod_name>
    
  3. Rufen Sie die Protokolle für Ihren Pod ab und überprüfen Sie alle Fehlernachrichten.

    kubectl logs <pod_name>
    
  4. Überprüfen Sie die Object StorageDokumentation zur Fehlerbehebung auf Schritte zur Behebung häufiger Fehler.

Ihre App-Pod erneut starten

Einige Probleme können behoben werden, indem Sie Ihre Pods erneut starten und erneut implementieren. Führen Sie die folgenden Schritte aus, um einen bestimmten Pod erneut zu implementieren.

  1. Wenn Ihr Pod Teil einer Bereitstellung ist, löschen Sie den Pod und lassen Sie die Bereitstellung den Pod erneut erstellen. Wenn Ihr Pod nicht Teil einer Bereitstellung ist, löschen Sie den Pod und wenden Sie Ihre Konfigurationsdatei für Pods erneut an.

    1. Löschen Sie den Pod.
        kubectl delete pod <pod_name>
        ```
        Beispielausgabe
        ```sh {: screen}
        pod "nginx" deleted
        ```
    2. Wenden Sie die Konfigurationsdatei erneut an, um den Pod erneut bereitzustellen.
    ```sh {: pre}
        kubectl apply -f <app.yaml>
        ```
        Beispielausgabe
        ```sh {: pre}
        pod/nginx created
        ```
    
  2. Wenn durch den Neustart des Pods das Problem nicht behoben wird, laden Sie Ihre Workerknoten erneut.

  3. Überprüfen Sie, ob Sie die neueste Version des IBM Cloud- und IBM Cloud Kubernetes Service-Plug-ins verwenden.

    ibmcloud update
    
    ibmcloud plugin repo-plugins
    
    ibmcloud plugin update
    

Überprüfen Sie, ob der Speichertreiber und die Plug-in-Pods den betriebsbereiten Status Running anzeigen

Führen Sie die entsprechenden Schritte aus, um den Status Ihres Speichertreibers und Ihrer Plug-in-Pods abzurufen und alle Fehlernachrichten zu überprüfen.

  1. Listen Sie die Pods im Namensbereich kube-system auf.

    kubectl get pods -n kube-system
    
  2. Wenn die Speichertreiber- und Plug-in-Pods keinen Aktiv-Status aufweisen, rufen Sie weitere Details des Pods ab, um die Fehlerursache zu finden. Je nach Status Ihres Pods können die folgenden Befehle fehlschlagen.

    1. Rufen Sie die Namen der Container ab, die im Treiberpod ausgeführt werden.
        kubectl describe pod POD_NAME -n kube-system
        ```
    2. Exportieren Sie die Protokolle aus dem Pod für Treiber in eine Datei `logs.txt` auf Ihrer lokalen Maschine.
    
    ```sh {: pre}
        kubectl logs <pod_name> -n kube-system > logs.txt
        ```
    3. Überprüfen Sie die Protokolldatei.
    
    ```sh {: pre}
        cat logs.txt
        ```
    
    
  3. Überprüfen Sie die neuesten Protokolle auf irgendwelche Fehlernachrichten. Überprüfen Sie die Object StorageDokumentation zur Fehlerbehebung auf Schritte zur Behebung häufiger Fehler.

Es wird überprüft, ob Ihr PVC erfolgreich bereitgestellt wurde.

Folgen Sie den Schritten, um den Status Ihres PVC und alle Fehlernachrichten zu überprüfen.

  1. Überprüfen Sie den Status Ihres PVC. Ein PVC wurde erfolgreich bereitgestellt, wenn er den Status Bound (Gebunden) anzeigt.

    kubectl get pvc
    
    • Wenn das PVC den Status gebundenanzeigt, wird das PVC erfolgreich bereitgestellt.

      Beispielausgabe

      NAME         STATUS    VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS                AGE
      silver-pvc   Bound     pvc-4b881a6b-ada8-4a44-b568-fe909107d756   24Gi       RWX            ibmc-file-silver            7m29s
      
    • Wenn der Status des PVC den Wartezustand Pending anzeigt, beschreiben Sie den PVC und überprüfen Sie den Abschnitt Ereignisse der Ausgabe für alle Warnungen oder Fehlernachrichten. Beachten Sie, dass PVCs, die auf Speicherklassen verweisen, deren Datenträger-Bindungsmodus auf WaitForFirstConsumer eingestellt ist, so lange im Wartezustand Pending bleiben, bis ein App-Pod bereitgestellt wird, der den PVC verwendet.

      kubectl describe pvc <pvc_name>
      

      Beispielausgabe

      Name:          local-pvc
      Namespace:     default
      StorageClass:  sat-local-file-gold
      Status:        Pending
      Volume:        
      Labels:        <none>
      Annotations:   <none>
      Finalizers:    [kubernetes.io/pvc-protection]
      Capacity:      
      Access Modes:  
      VolumeMode:    Filesystem
      Mounted By:    <none>
      Events:
      Type     Reason              Age                 From                         Message
      ----     ------              ----                ----                         -------
      Warning  ProvisioningFailed  60s (x42 over 11m)  persistentvolume-controller  storageclass.storage.k8s.io "sat-local-file-gold" not found
      
  2. Lesen Sie die Object Storage-Dokumentation zur Fehlerbehebung für Schritte zur Behebung allgemeiner Object Storage-PVC-Fehler.

Version der kubectl-CLI überprüfen und aktualisieren

Wenn Sie eine kubectl-CLI-Version verwenden, die nicht wenigstens mit der Version hauptversion.nebenversion Ihres Clusters übereinstimmt, können unerwartete Ergebnisse auftreten. Beispiel: Kubernetes unterstützt keine kubectl Client-Versionen, deren Versionsnummer um zwei oder mehr Versionen von der Server-Version abweicht (n ± 2).

  1. Stellen Sie sicher, dass die Version der kubectl-CLI, die Sie auf Ihrer lokalen Maschine ausführen, mit der Kubernetes-Version übereinstimmt, die in Ihrem Cluster installiert ist. Zeigen Sie die Version der kubectl-CLI an, die in Ihrem Cluster und auf Ihrer lokalen Maschine installiert ist.

    kubectl version
    

    Beispielausgabe:

    Client Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.36", GitCommit:"641856db18352033a0d96dbc99153fa3b27298e5", GitTreeState:"clean", BuildDate:"2019-03-25T15:53:57Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"darwin/amd64"}
    Server Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.36+IKS", GitCommit:"e15454c2216a73b59e9a059fd2def4e6712a7cf0", GitTreeState:"clean", BuildDate:"2019-04-01T10:08:07Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}
    

    Die CLI-Versionen stimmen überein, wenn in GitVersion für den Client und den Server dieselbe Version angezeigt wird. Sie können den +IKS-Teil der Version für den Server ignorieren.

  2. Wenn die kubectl CLI-Versionen auf Ihrem lokalen Rechner und in Ihrem Cluster nicht übereinstimmen, aktualisieren Sie entweder Ihren Cluster oder installieren Sie eine andere CLI-Version auf Ihrem lokalen Rechner.

Object Storage-Plug-in überprüfen und aktualisieren

Folgen Sie den Schritten, um das Object Storage-Plug-in zu aktualisieren.

Treiberprotokolle und die installierte Treiberversion überprüfen

Führen Sie die folgenden Schritte aus, um die Treiberprotokolle zu überprüfen und die Treiberversion Ihrer Object Storage-Installation anzuzeigen.

  1. Führen Sie die Pods im Namensbereich „kube-system“ auf.
    kubectl get pods -n kube-system -o wide -l app=ibmcloud-object-storage-driver
    
  2. Überprüfen Sie die Protokolle Ihrer Pods.
    kubectl -n kube-system exec -it -- cat /host/log/ibmc-s3fs.log
    

Helm-Diagramm aktualisieren

Um das Diagramm Helm aus einer älteren Version zu aktualisieren, führen Sie die folgenden Schritte aus.

  1. Deinstallieren Sie das aktuelle Helm-Diagramm.

    helm ls --all --all-namespaces
    
    helm uninstall <helm_chart_name> -n <helm_chart_namespace>
    
  2. Fügen Sie das Helm-Repository hinzu und aktualisieren Sie es.

    helm repo add ibm-helm https://raw.githubusercontent.com/IBM/charts/master/repo/ibm-helm
    
    helm repo update
    
  3. Installieren Sie das neue Helm-Diagramm.

    helm plugin uninstall ibmc
    helm fetch --untar ibm-helm/ibm-object-storage-plugin && cd ibm-object-storage-plugin
    helm plugin install ./ibm-object-storage-plugin/helm-ibmc
    helm ibmc --help