Debug degli errori IBM Cloud File Storage for Classic

Esaminare le opzioni per eseguire il debug di File Storage for Classic e individuare le cause di eventuali guasti.

Verifica che il pod che monta l'istanza di archiviazione sia stato distribuito correttamente

Attieniti alla procedura per esaminare eventuali messaggi di errore correlati alla distribuzione del pod.

  1. Elenca i pod nel tuo cluster. Un pod è stato distribuito correttamente se lo stato del pod è Running.

    kubectl get pods
    
  2. Verifica i dettagli del tuo pod ed esamina eventuali messaggi di errore visualizzati nella sezione "Eventi " dell'output della CLI.

    kubectl describe pod <pod_name>
    
  3. Richiama i log per il tuo pod e riesamina eventuali messaggi di errore.

    kubectl logs <pod_name>
    
  4. Consultare la documentazione per la risoluzione dei problemi di File Storage for Classic per i passaggi per risolvere gli errori comuni.

Riavvio del tuo pod dell'applicazione

Alcuni problemi possono essere risolti riavviando e ridistribuendo i tuoi pod. Attieniti alla procedura per ridistribuire un pod specifico.

  1. Se il tuo pod fa parte di una distribuzione, elimina il pod e lascia che la distribuzione lo ricrei. Se il pod non fa parte di una distribuzione, elimina il pod e applica nuovamente il suo file di configurazione.

    1. Elimina il pod.
        kubectl delete pod <pod_name>
        ```
        Output di esempio
        ```sh {: screen}
        pod "nginx" deleted
        ```
    2. Riapplica il file di configurazione per ridistribuire il pod.
    ```sh {: pre}
        kubectl apply -f <app.yaml>
        ```
        Output di esempio
        ```sh {: pre}
        pod/nginx created
        ```
    
  2. Se il riavvio del pod non risolve il problema, ricarica i nodi di lavoro.

  3. Accertati di utilizzare la versione più recente di IBM Cloud e del plug-in IBM Cloud Kubernetes Service.

    ibmcloud update
    
    ibmcloud plugin repo-plugins
    
    ibmcloud plugin update
    

Verificare che il driver di archiviazione e i pod plug-in presentino lo stato “In esecuzione

Attieniti alla procedura per controllare lo stato del tuo driver di archiviazione e dei pod del plug-in ed esaminare eventuali messaggi di errore.

  1. Elenca i pod nello spazio dei nomi kube-system.

    kubectl get pods -n kube-system
    
  2. Se il driver di archiviazione e i pod plug-in non mostrano lo stato " In esecuzione ", ottenere ulteriori dettagli sul pod per individuare la causa principale. A seconda dello stato del tuo pod, i seguenti comandi potrebbero avere esito negativo.

    1. Ottieni i nomi dei contenitori che vengono eseguiti nel pod del driver.
        kubectl describe pod POD_NAME -n kube-system
        ```
    2. Esporta i log dal pod del driver in un file `logs.txt` sulla tua macchina locale.
    
    ```sh {: pre}
        kubectl logs <pod_name> -n kube-system > logs.txt
        ```
    3. Riesamina il file di log.
    
    ```sh {: pre}
        cat logs.txt
        ```
    
    
  3. Controllare i log più recenti per eventuali messaggi di errore. Consultare la documentazione per la risoluzione dei problemi di File Storage for Classic per i passaggi per risolvere gli errori comuni.

Verifica se il tuo PVC è stato configurato correttamente.

Attieniti alla procedura per controllare lo stato della tua PVC ed esaminare eventuali messaggi di errore.

  1. Controlla lo stato della tua PVC. Il provisioning della PVC viene eseguito correttamente se lo stato della PVC è Bound (Collegato).

    kubectl get pvc
    
    • Se la PVC mostra uno stato di Bound, il provisioning della PVC viene eseguito correttamente.

      Output di esempio

      NAME         STATUS    VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS                AGE
      silver-pvc   Bound     pvc-4b881a6b-ada8-4a44-b568-fe909107d756   24Gi       RWX            ibmc-file-silver            7m29s
      
    • Se lo stato della PVC mostra In sospeso, descrivere la PVC ed esaminare la sezione Eventi dell'output per eventuali avvertenze o messaggi di errore. Nota che le PVC che fanno riferimento a classi di archiviazione con la modalità di bind del volume impostata su WaitForFirstConsumer rimangono in sospeso fino a quando non viene distribuito un pod dell'applicazione che utilizza la PVC.

      kubectl describe pvc <pvc_name>
      

      Output di esempio

      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. Consultare la documentazione per la risoluzione dei problemi di File Storage for Classic per i passi per risolvere gli errori PVC comuni File Storage for Classic.

Controllo e aggiornamento della versione CLI kubectl

Se utilizzi una versione della CLI kubectl che non corrisponde almeno alla versione major.minor del tuo cluster, potresti riscontrare risultati imprevisti. Ad esempio, Kubernetes non supporta le versioni client di kubectl che presentano una differenza di 2 o più versioni rispetto alla versione server (n ± 2).

  1. Verifica che la versione della CLI di kubectl eseguita sulla macchina locale corrisponda alla versione Kubernetes installata nel tuo cluster. Visualizza la versione della CLI di kubectl installata nel tuo cluster e la tua macchina locale.

    kubectl version
    

    Output di esempio:

    Client Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.35", 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.35+IKS", GitCommit:"e15454c2216a73b59e9a059fd2def4e6712a7cf0", GitTreeState:"clean", BuildDate:"2019-04-01T10:08:07Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}
    

    Le versioni delle CLI corrispondono se la versione visualizzata per il client e per il server in GitVersion è la stessa. Puoi ignorare la parte +IKS della versione del server.

  2. Se le versioni della CLI di kubectl sul tuo computer locale e sul tuo cluster non corrispondono, aggiorna il cluster oppure installa una versione diversa della CLI sul tuo computer locale.