Debug di errori degli archivi permanenti

Rivedi le opzioni per eseguire il debug dell'archiviazione persistente e trovare le cause principali degli errori.

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

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

    oc get pods
    
  2. Ottieni i dettagli del tuo pod e controlla se vengono visualizzati errori nella sezione Events dell'output della tua CLI.

    oc describe pod <pod_name>
    
  3. Richiama i log della tua applicazione e controlla se sono presenti messaggi di errore.

    oc logs <pod_name>
    

Riavvio del tuo pod dell'applicazione

  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.

    oc delete pod <pod_name>
    
    oc apply -f <app.yaml>
    
  2. Se il riavvio del pod non risolve il problema, ricarica il tuo nodo 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
    

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

  1. Elenca i pod nel progetto kube-system.
    oc 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, potresti non essere in grado di eseguire tutti i comandi riportati di seguito.
    1. Ottieni i nomi dei contenitori che vengono eseguiti nel pod del driver.
        kubectl get pod <pod_name> -n kube-system -o jsonpath="{.spec['containers','initContainers'][*].name}" | tr -s '[[:space:]]' '\n'
        ```
        Output di esempio per Block Storage for VPC con tre contenitori:
        ```sh {: screen}
        csi-provisioner
        csi-attacher
        iks-vpc-block-driver
        ```
        Output di esempio per Block Storage for Classic:
        ```sh {: pre}
        ibmcloud-block-storage-driver-container
        ```
    2. Esporta i log dal pod del driver in un file `logs.txt` sulla tua macchina locale. Includi il nome del contenitore del driver.
    ```sh {: pre}
        oc logs <pod_name> -n kube-system -c <container_name> > logs.txt
        ```
    3. Riesamina il file di log.
    ```sh {: pre}
        cat logs.txt
        ```
    
  3. Analizza la sezione Events (Eventi) dell'output della CLI del comando oc describe pod e i log più recenti per trovare la causa principale per l'errore.

Verifica se il tuo PVC è stato configurato correttamente.

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

    oc get pvc
    
  2. Se lo stato della PVC è Pending, richiama l'errore per cui la PVC resta in sospeso.

    oc describe pvc <pvc_name>
    
  3. Esamina gli errori comuni che possono verificarsi durante la creazione della PVC.

  4. Esamina gli errori comuni che possono verificarsi quando monti una PVC nella tua applicazione.

  5. Verifica che la versione della CLI di kubectl eseguita sulla macchina locale corrisponda alla versione Kubernetes installata nel tuo cluster. 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. Visualizza la versione della CLI di kubectl installata nel tuo cluster e la tua macchina locale.
        oc version
        ```
        Output di esempio
        ```sh {: screen}
        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"}
        ```
         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](/docs/openshift?topic=openshift-update) oppure [installa una versione diversa della CLI sul tuo computer locale](/docs/openshift?topic=openshift-cli-install).
    
    
    
  6. Per Block Storage for VPC, verifica di disporre della versione più recente del componente aggiuntivo.

  7. Solo per l'archiviazione blocchi classica, l'archiviazione oggetti e Portworx: assicurati di aver installato la versione più recente del grafico Helm per il plugin.

Archiviazione blocchi e oggetti:

1. Aggiorna i tuoi repository di grafici Helm.
```sh {: pre}
    helm repo update
    ```
2. Elenca i grafici Helm del repository.
**Per l'archiviazione blocchi classica**:
```sh {: pre}
    helm search repo iks-charts | grep block-storage-plugin
    ```
    Output di esempio
    ```sh {: screen}
    iks-charts-stage/ibmcloud-block-storage-plugin    1.5.0                                                        A Helm chart for installing ibmcloud block storage plugin   
    iks-charts/ibmcloud-block-storage-plugin          1.5.0                                                        A Helm chart for installing ibmcloud block storage plugin   
    ```
    **Per l'archiviazione oggetti**:
    ```sh {: pre}
    helm search repo ibm-charts | grep object-storage-plugin
    ```
    Output di esempio
    ```sh {: screen}
    ibm-charts/ibm-object-storage-plugin             1.0.9            1.0.9                             A Helm chart for installing ibmcloud object storage plugin  
    ```
3. Elenca i grafici Helm installati nel tuo cluster e confronta la versione che hai installato con quella disponibile.
```sh {: pre}
    helm list --all-namespaces
    ```
4. Se è disponibile una versione più recente, installarla. Per istruzioni, vedi [Aggiornamento del plug-in di archiviazione blocchi IBM Cloud](/docs/openshift?topic=openshift-vpc-block#vpc-addon-update) e [Aggiornamento del plug-in IBM Cloud Object Storage](/docs/openshift?topic=openshift-storage_cos_install#update_cos_plugin).

Portworx

  1. Trova l'ultima versione della classifica " Helm " e disponibile.

  2. Elenca i grafici Helm installati nel tuo cluster e confronta la versione che hai installato con quella disponibile.

    helm list --all-namespaces
    
  3. Se è disponibile una versione più recente, installarla. Per istruzioni, vedi Aggiornamento di Portworx nel tuo cluster.

OpenShift Data Foundation

Descrivere le risorse ODF ed esaminare gli output del comando per eventuali messaggi di errore.

  1. Elencare il nome del cluster ODF.
    oc get ocscluster
    
    Output di esempio:
    NAME             AGE
    ocscluster-vpc   71d
    
  2. Descrivere il cluster di archiviazione ed esaminare la sezione Events dell'output per eventuali messaggi di errore.
    oc describe ocscluster <ocscluster-name>
    
  3. Elenca i pod nello spazio dei nomi kube-system e verifica che siano Running.
    oc get pods -n kube-system
    
  4. Descrivi il pod ibm-ocs-operator-controller-manager e rivedi la sezione Events nell'output per eventuali messaggi di errore.
    oc describe pod <ibm-ocs-operator-controller-manager-a1a1a1a> -n kube-system
    
  5. Esaminare i log di ibm-ocs-operator-controller-manager.
    oc logs <ibm-ocs-operator-controller-manager-a1a1a1a> -n kube-system
    
  6. Descrivere NooBaa ed esaminare la sezione Events dell'output per eventuali messaggi di errore.
    oc describe noobaa -n openshift-storage