Débogage des échecs Block Storage for Classic

Passez en revue les options permettant de déboguer Block Storage for Classic 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é

Suivez la procédure ci-dessous pour passer en revue les éventuels messages d'erreur liés au déploiement du pod.

  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 passez en revue des messages d'erreur éventuels qui s'affichent dans la section Events de la sortie de l'interface CLI.

    oc describe pod <pod_name>
    
  3. Extrayez les journaux relatifs à votre pod et consultez les messages d'erreur qu'ils contiennent le cas échéant.

    oc logs <pod_name>
    
  4. Passez en revue la documentation sur le traitement des incidents pour Block Storage for Classic afin de connaître la procédure de résolution des erreurs courantes.

Redémarrage de votre pod d'application

Certains problèmes peuvent être résolus en redémarrant et redéployant les pods. Suivez la procédure ci-dessous pour redéployer un pod spécifique.

  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.

    1. Supprimez le pod.
        oc delete pod <pod_name>
        ```
        Exemple de sortie
        ```sh {: screen}
        pod "nginx" deleted
        ```
    2. Réappliquez le fichier de configuration pour redéployer le pod.
    ```sh {: pre}
        oc apply -f <app.yaml>
        ```
        Exemple de sortie
        ```sh {: pre}
        pod/nginx created
        ```
    
  2. Si le redémarrage de votre pod ne résout pas le problème, rechargez vos noeuds 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
    
    ibmcloud plugin update
    

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

Suivez la procédure ci-dessous pour vérifier le statut de votre pilote de stockage et des pods du plug-in, et recherchez les messages d'erreur éventuels.

  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 l'état de votre pod, les commandes suivantes peuvent échouer.

    1. Obtenez les noms des conteneurs qui s'exécutent dans le pod de pilote.
        kubectl describe pod POD_NAME -n kube-system
        ```
    2. Exportez les journaux du pod de pilote dans un fichier `logs.txt` sur votre machine locale.
    
    ```sh {: pre}
        oc logs <pod_name> -n kube-system > logs.txt
        ```
    3. Examinez le fichier journal.
    
    ```sh {: pre}
        cat logs.txt
        ```
    
    
  3. 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 ibm-vpc-block-csi-controller-0 -n kube-system -o jsonpath="{.spec['containers','initContainers'][*].name}" | tr -s '[[:space:]]' '\n'
        ```
        **Exemple de sortie pour Block Storage for VPC**
        ```sh {: screen}
        csi-provisioner
        csi-attacher
        liveness-probe
        iks-vpc-block-driver
        ```
    2. Exportez les journaux de conteneur du pod de pilote dans un fichier `logs.txt` sur votre machine locale.
    ```sh {: pre}
        oc logs <pod_name> -n kube-system -c <container_name> > logs.txt
        ```
    
  4. Recherchez les messages d'erreur éventuels dans les derniers journaux. Passez en revue la documentation sur le traitement des incidents pour Block Storage for Classic afin de connaître la procédure de résolution des erreurs courantes.

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

Suivez la procédure ci-dessous pour vérifier le statut de votre PVC et recherchez les messages d'erreur éventuels.

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

    oc get pvc
    
    • L'état de PVC Bound indique que votre PVC est mis à disposition.

      Exemple de sortie

      NAME         STATUS    VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS                AGE
      silver-pvc   Bound     pvc-4b881a6b-ada8-4a44-b568-fe909107d756   24Gi       RWX            ibmc-file-silver            7m29s
      
    • Si votre PVC est à l'état En attente, décrivez-le et recherchez dans la section Events de la sortie d'éventuels avertissements ou messages d'erreur. Notez qu'une réservation de volume persistant qui fait référence à des classes de stockage avec le mode de liaison de volume WaitForFirstConsumer reste à l'état En attente jusqu'à ce qu'elle soit utilisée par un pod d'application déployé.

      oc describe pvc <pvc_name>
      

      Exemple de sortie

      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. Passez en revue la documentation sur le traitement des incidents pour Block Storage for Classic afin de connaître la procédure de résolution des erreurs courantes.

Vérification et mise à jour de la version CLI oc

Si vous utilisez une version d'interface de ligne de commande oc 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 oc dont le numéro de version diffère de deux versions ou plus par rapport à la version serveur (n +/- 2).

  1. Vérifiez que la version de l'interface de ligne de commande oc que vous exécutez sur votre machine locale correspond à la version Kubernetes qui est installée dans votre cluster. Affichez la version de l'interface de ligne de commande oc qui est installée dans votre cluster et sur votre machine locale.

    oc version
    

    Exemple de sortie :

    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"}
    

    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 CLI oc sur votre machine locale et sur votre cluster ne correspondent pas, mettez à jour votre cluster ou installez une autre version de l'interface CLI sur votre machine locale.

Vérification et mise à jour du pilote Block Storage for Classic

  1. Pour Block Storage for VPC, vérifiez que vous disposez de la dernière version du module complémentaire de cluster Block Storage for VPC.

  2. Pour Block Storage for Classic sur les clusters classiques, vérifiez que vous avez installé la dernière version de la charte Helm pour le plug-in.

    1. Mettez à jour vos référentiels de charte Helm.
        helm repo update
        ```
    2. Répertoriez les chartes Helm dans le référentiel.
    ```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   
        ```
    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 Block Storage IBM Cloud](/docs/openshift?topic=openshift-vpc-block#vpc-addon-update).