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.
-
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 -
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> -
Extrayez les journaux relatifs à votre pod et consultez les messages d'erreur qu'ils contiennent le cas échéant.
oc logs <pod_name>
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.
-
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.
- 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 ``` -
Si le redémarrage de votre pod ne résout pas le problème, rechargez vos noeuds worker.
-
Vérifiez que vous utilisez la dernière version du plug-in IBM Cloud et IBM Cloud Kubernetes Service.
ibmcloud updateibmcloud plugin repo-pluginsibmcloud 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.
-
Répertoriez les pods dans le projet
kube-system.oc get pods -n kube-system -
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.
- 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 ``` -
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.
- 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 ``` -
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.
-
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
WaitForFirstConsumerreste à 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
-
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).
-
Vérifiez que la version de l'interface de ligne de commande
ocque 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 commandeocqui est installée dans votre cluster et sur votre machine locale.oc versionExemple 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
GitVersionpour le client et le serveur. Vous pouvez ignorer la partie+IKSde la version du serveur. -
Si les versions de l'interface CLI
ocsur 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
-
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.
-
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.
- 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).