Débogage des incidents de stockage persistant

Passez en revue les options permettant de déboguer le stockage persistant et d'identifier les causes premières des échecs.

Procédure visant à vérifier si le pod qui monte votre instance de stockage est correctement déployé

  1. Affichez la liste des pods de votre cluster. Un pod est correctement déployé s'il est à l'état En cours d'exécution.

    oc get pods
    
  2. Obtenez les détails relatifs à votre pod et vérifiez si des erreurs sont affichées dans la section Events de votre sortie CLI.

    oc describe pod <pod_name>
    
  3. Extrayez les journaux relatifs à votre application et vérifiez s'ils contiennent des messages d'erreur.

    oc logs <pod_name>
    

Redémarrage de votre pod d'application

  1. Si votre pod fait partie d'un déploiement, supprimez-le et laissez le déploiement le régénérer. Si votre pod ne fait pas partie d'un déploiement, supprimez-le et réappliquez votre fichier de configuration de pod.

    oc delete pod <pod_name>
    
    oc apply -f <app.yaml>
    
  2. Si le redémarrage de votre pod ne résout pas le problème, rechargez votre noeud worker.

  3. Vérifiez que vous utilisez la dernière version du plug-in IBM Cloud et IBM Cloud Kubernetes Service.

    ibmcloud update
    
    ibmcloud plugin repo-plugins
    

Procédure visant à vérifier que les pods de pilote de stockage et de plug-in sont à l'état En cours d'exécution

  1. Répertoriez les pods dans le projet kube-system.
    oc get pods -n kube-system
    
  2. Si le pilote de stockage et les gousses de plug-in n'affichent pas le statut Exécution, obtenez plus de détails sur le pod pour trouver la cause principale. Selon le statut de votre pod, il se peut que vous ne soit pas en mesure d'exécuter toutes les commandes suivantes.
    1. Obtenez les noms des conteneurs qui s'exécutent dans le pod de pilote.
        kubectl get pod <pod_name> -n kube-system -o jsonpath="{.spec['containers','initContainers'][*].name}" | tr -s '[[:space:]]' '\n'
        ```
        Exemple de sortie pour Block Storage for VPC avec trois conteneurs :
        ```sh {: screen}
        csi-provisioner
        csi-attacher
        iks-vpc-block-driver
        ```
        Exemple de sortie pour Block Storage for Classic :
        ```sh {: pre}
        ibmcloud-block-storage-driver-container
        ```
    2. Exportez les journaux du pod de pilote dans un fichier `logs.txt` sur votre machine locale. Incluez le nom du conteneur de pilote.
    ```sh {: pre}
        oc logs <pod_name> -n kube-system -c <container_name> > logs.txt
        ```
    3. Examinez le fichier journal.
    ```sh {: pre}
        cat logs.txt
        ```
    
  3. Analysez la section Events de la sortie de l'interface LCI de la commande oc describe pod et des journaux les plus récents pour identifier la cause première de l'erreur.

Procédure visant à vérifier si votre réservation de volume persistant a été correctement mise à disposition.

  1. Vérifiez l'état de votre réservation de volume persistant. Une réservation de volume persistant est correctement mise à disposition si elle est à l'état Lié.

    oc get pvc
    
  2. Si l'état de la réservation de volume persistant est En attente, récupérez le message d'erreur correspondant.

    oc describe pvc <pvc_name>
    
  3. Passez en revue les erreurs courantes qui sont susceptibles de se produire durant la création de réservation de volume persistant.

  4. Passez en revue les erreurs courantes qui sont susceptibles de se produire lorsque vous montez une réservation de volume persistant sur votre application.

  5. Vérifiez que la version de l'interface de ligne de commande kubectl que vous exécutez sur votre machine locale correspond à la version Kubernetes qui est installée dans votre cluster. Si vous utilisez une version d'interface de ligne de commande kubectl qui ne correspond pas au moins à la version principale.secondaire de votre cluster, vous risquez d'obtenir des résultats inattendus. Par exemple, [ Kubernetes ne prend pas en charge les versions client kubectl dont le numéro de version diffère de 2 versions ou plus par rapport à la version serveur (n +/- 2)].

    1. Affichez la version de l'interface de ligne de commande kubectl qui est installée dans votre cluster et sur votre machine locale.
        oc version
        ```
        Exemple de sortie
        ```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"}
        ```
         Les versions de l'interface de ligne de commande correspondent si la même version est visible dans `GitVersion` pour le client et le serveur. Vous pouvez ignorer la partie `+IKS` de la version du serveur.
    2. Si les versions de l'interface de ligne de commande `kubectl` sur votre machine locale et votre cluster ne correspondent pas, [Mettre à jour votre cluster](/docs/openshift?topic=openshift-update) ou [Installer une autre version de l'interface de ligne de commande sur votre machine locale](/docs/openshift?topic=openshift-cli-install).
    
    
    
  6. Pour Block Storage for VPC, vérifiez que vous disposez de la dernière version du module complémentaire.

  7. Pour le stockage par blocs classique, le stockage d'objets et Portworx uniquement : vérifiez que vous avez installé la dernière version de la charte Helm pour le plug-in.

Stockage par blocs et stockage d'objets :

1. Mettez à jour vos référentiels de charte Helm.
```sh {: pre}
    helm repo update
    ```
2. Répertoriez les chartes Helm dans le référentiel.
**Pour le stockage par blocs classique** :
```sh {: pre}
    helm search repo iks-charts | grep block-storage-plugin
    ```
    Exemple de sortie
    ```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   
    ```
    **Pour le stockage d'objets** :
    ```sh {: pre}
    helm search repo ibm-charts | grep object-storage-plugin
    ```
    Exemple de sortie
    ```sh {: screen}
    ibm-charts/ibm-object-storage-plugin             1.0.9            1.0.9                             A Helm chart for installing ibmcloud object storage plugin  
    ```
3. Répertoriez les chartes Helm installées dans votre cluster et comparez la version que vous avez installée avec la version qui est disponible.
```sh {: pre}
    helm list --all-namespaces
    ```
4. Si une version plus récente est disponible, installez-la. Pour obtenir des instructions, voir [Mise à jour du plug-in IBM Cloud Block Storage](/docs/openshift?topic=openshift-vpc-block#vpc-addon-update) et [Mise à jour du plug-in IBM Cloud Object Storage](/docs/openshift?topic=openshift-storage_cos_install#update_cos_plugin).

Portworx

  1. Retrouvez la dernière version disponible du tableau Helm.

  2. Répertoriez les chartes Helm installées dans votre cluster et comparez la version que vous avez installée avec la version qui est disponible.

    helm list --all-namespaces
    
  3. Si une version plus récente est disponible, installez-la. Pour obtenir des instructions, voir Mise à jour de Portworx dans votre cluster.

OpenShift Data Foundation

Décrivez vos ressources ODF et passez en revue les sorties de commande pour tous les messages d'erreur.

  1. Affichez le nom de votre cluster ODF.
    oc get ocscluster
    
    Exemple de sortie :
    NAME             AGE
    ocscluster-vpc   71d
    
  2. Décrivez le cluster de stockage et consultez les messages d'erreur dans la section Events de la sortie.
    oc describe ocscluster <ocscluster-name>
    
  3. Répertoriez les pods dans l'espace de noms kube-system et vérifiez qu'ils sont à l'état Running.
    oc get pods -n kube-system
    
  4. Décrivez le pod ibm-ocs-operator-controller-manager et consultez les messages d'erreur dans la section Events de la sortie.
    oc describe pod <ibm-ocs-operator-controller-manager-a1a1a1a> -n kube-system
    
  5. Examinez les journaux d'ibm-ocs-operator-controller-manager.
    oc logs <ibm-ocs-operator-controller-manager-a1a1a1a> -n kube-system
    
  6. Décrivez NooBaa et consultez les messages d'erreur dans la section Events de la sortie.
    oc describe noobaa -n openshift-storage