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 :

  • Le PVC que vous voulez surveiller n'est peut-être pas monté. Les indicateurs sont uniquement renseigné pour les PVC montés sur un pod.
  • Il peut s'agir d'un problème lié à la console, qui peut être vérifié en affichant manuellement les mesures de stockage dans l'interface 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. Accédez à votre cluster Red Hat OpenShift.

  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é.

    oc 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/openshift?topic=openshift-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. Après avoir effectué les étapes suivantes, si vous êtes en mesure de visualiser manuellement les métriques dans le CLI et non dans le tableau de bord, cela indique qu'il y a un problème de console pour lequel vous devez [ouvrir un problème de support] (/docs/openshift?topic=openshift-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
    
    oc apply -f <file_name>
    
  2. Créez un compte de service. Dans cet exemple, le compte de service est nommétest-sa.

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

    oc 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.

    oc get nodes
    

    Exemple de sortie

    NAME          STATUS    ROLES    AGE     VERSION              
    10.111.1.11   Ready     <none>   1d      v1.35+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
    
    oc 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
      
    2. Exécutez la commande suivante pour obtenir le jeton. Notez qu'il n'y a pas de sortie.

      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 attendre plusieurs minutes avant que les mesures ne soient affichées. Si vous ne parvenez toujours pas à afficher les métriques, [ouvrez un problème de support](/docs/openshift?topic=openshift-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.
    oc delete pod testpod
    
  3. Supprimez le clusterRoleBinding.
    oc delete clusterrolebinding test-metrics-reader
    
  4. Supprimez le compte de service.
    oc delete sa test-sa
    
  5. Supprimez le rôle de cluster.
    oc delete clusterrole test-metrics-reader