Débogage des mesures Block Storage for VPC

Lorsque vous tentez d'afficher les mesures Block Storage for VPC dans le tableau de bord de surveillance, les mesures ne sont pas renseignées.

Les indicateurs risquent d'échouer dans le tableau de bord pour l'une des raisons suivantes :

  • Il se peut que le PVC que vous souhaitez surveiller ne soit pas monté. Les indicateurs sont uniquement renseigné pour les PVC montés sur un pod.
  • Il se peut qu'il y ait un problème lié à la console, ce qui peut être vérifié en consultant manuellement les métriques de stockage dans l'interface de ligne de commande (CLI).

Vérifiez que le PVC est monté. Si le problème persiste, affichez manuellement vos indicateurs dans l'interface de ligne de commande pour déterminer si la cause est liée à des problèmes avec la console.

  1. Connectez-vous à votre compte. Le cas échéant, ciblez le groupe de ressources approprié. Définissez le contexte de votre cluster.

  2. Décrivez l'objet PVC. Si la ligne Utilisé par de la sortie est remplie avec le nom d'un pod, le PVC est monté.

    kubectl describe pvc <pvc_name>
    

    Exemple de sortie

    Name:          my-pvc
    Namespace:     default
    StorageClass:  ibmc-vpc-block-5iops-tier
    Status:        Bound
    Volume:        pvc-a11a11a1-111a-111a-a1a1-aaa111aa1a1a
    Labels:        <none>
    Annotations:   pv.kubernetes.io/bind-completed: yes
                   pv.kubernetes.io/bound-by-controller: yes
                   volume.beta.kubernetes.io/storage-provisioner: vpc.block.csi.ibm.io
    Finalizers:    [kubernetes.io/pvc-protection]
    Capacity:      10Gi
    Access Modes:  RWO
    VolumeMode:    Filesystem
    Used By:       my-pod-11a1a1a1a1-1a11a
    Events:        <none>
    
  3. Si le PVC n'est pas monté sur un pod, consultez les étapes pour la configuration de Block Storage for VPC et montez le PVC sur un pod. Essayez ensuite de visualiser à nouveau les mesures.

  4. Si la réservation de volume persistant est montée, suivez les étapes de vérification manuelle des métriques Block Storage for VPC, puis [ouvrez un problème de support](/docs/containers?topic=containers-get-help. Les étapes de vérification manuelle dans l'interface de ligne de commande vous permettent d'afficher vos indicateurs, mais ne sont pas une solution pour les mesures qui ne sont pas renseignées dans la console. Toutefois, si vous êtes en mesure de vérifier manuellement vos mesures, cela indique qu'il existe une question de console pour laquelle vous devez ouvrir un problème.

Affichage manuel des mesures de stockage dans l'interface de ligne de commande

Si vos mesures de stockage ne sont pas visibles dans le tableau de bord de surveillance, vous pouvez les afficher manuellement dans l'interface de ligne de commande. Notez que la vérification manuelle de vos mesures de stockage est une solution temporaire et non une solution de surveillance permanente pour l'affichage des mesures. Une fois les étapes suivantes effectuées, si vous parvenez à consulter manuellement les métriques dans l'interface de ligne de commande (CLI) mais pas dans le tableau de bord, cela indique qu'il existe un problème au niveau de la console pour lequel vous devez [ouvrir un ticket d'assistance] (/docs/containers?topic=containers-get-help.

Une fois que vous avez terminé les étapes suivantes, veillez à supprimer les ressources que vous avez créées lors du débogage.

  1. Créez et déployez une configurationclusterRole personnalisée. Dans cet exemple, clusterRoleest nommétest-metrics-reader.

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
    name: test-metrics-reader
    rules:
    - nonResourceURLs:
        - "/metrics"
        verbs:
        - get
    - apiGroups:
        - ""
        resources:
        - nodes/metrics
        verbs:
        - get
    
    kubectl apply -f <file_name>
    
  2. Créez un compte de service. Dans cet exemple, le compte de service est nommétest-sa.

    kubectl create sa test-sa
    
  3. Ajoutez unclusterRoleBinding àclusterRole.

    kubectl create clusterrolebinding test-metrics-reader --clusterrole test-metrics-reader --serviceaccount=default:test-sa
    
  4. Répertoriez vos nœuds et notez le nom et l'adresse IP du noeud pour lequel vous souhaitez collecter des mesures.

    kubectl get nodes
    

    Exemple de sortie

    NAME          STATUS    ROLES    AGE     VERSION              
    10.111.1.11   Ready     <none>   1d      v1.36+IKS            
    
  5. Créez un fichier yaml pour déployer un pod sur le noeud. Veillez à indiquer le compte de service que vous avez créé et l'adresse IP du noeud.

    apiVersion: v1
    kind: Pod
    metadata:
    name: testpod
    spec:
    nodeName: 10.111.1.111
    containers:
    - image: nginx
        name: nginx
    serviceAccountName: test-sa
    
    kubectl apply -f <file_name>
    
  6. Extrayez le jeton de compte de service de l'intérieur du pod.

    1. Connectez-vous au pod.
        kubectl exec testpod -it -- bash
        ```
    1. Exécutez la commande suivante pour obtenir le jeton. Notez qu'il n'y a pas de sortie.
    
    ```sh {: pre}
        token=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)
        ```
    
  7. Lorsque vous êtes encore connecté au pod, exécutez la commande pour afficher les mesures de stockage. Veillez à indiquer l'adresse IP du noeud.

    curl -k -H "authorization: bearer <token> https://<node_IP>:10250/metrics | grep kubelet_volume_stats
    
  8. Affichez les mesures dans la sortie du terminal. Il se peut que vous deviez patienter plusieurs minutes avant que les indicateurs ne s'affichent. Si vous ne parvenez toujours pas à afficher les métriques, [ouvrez un problème de support](/docs/containers?topic=containers-get-help.

  9. Une fois que vous avez fini d'afficher les indicateurs et que vous avez déterminé si le problème est lié au tableau de bord ou à l'agent de mesure, supprimez les configurations et les ressources que vous avez créées dans les étapes précédentes.

N'ignorez pas cette étape.

  1. Quittez le pod.
    exit
    
  2. Supprimez le pod.
    kubectl delete pod testpod
    
  3. Supprimez le clusterRoleBinding.
    kubectl delete clusterrolebinding test-metrics-reader
    
  4. Supprimez le compte de service.
    kubectl delete sa test-sa
    
  5. Supprimez le rôle de cluster.
    kubectl delete clusterrole test-metrics-reader