Debug delle metriche Block Storage for VPC

Quando si cerca di visualizzare le metriche di Block Storage for VPC nel dashboard di monitoraggio, le metriche non vengono visualizzate.

Le metriche potrebbero non essere popolate nel dashboard per uno dei seguenti motivi:

  • La PVC che si desidera monitorare potrebbe non essere montata. Le metriche vengono popolate solo per i PVC montati su un pod.
  • Potrebbe esserci un problema correlato alla console, che può essere verificato visualizzando manualmente le metriche di archiviazione nella CLI.

Verificare che il PVC sia montato. Se il problema persiste, visualizza manualmente le tue metriche nella CLI per determinare se la causa è correlata ai problemi con la console.

  1. Accedi al tuo cluster Red Hat OpenShift.

  2. Descrivi il PVC. Se la riga Utilizzata da dell'output è popolata con il nome di un pod, la PVC viene montata.

    oc describe pvc <pvc_name>
    

    Output di esempio

    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. Se la PVC non è montata in un pod, esamina la procedura per configurare Block Storage for VPC e monta la PVC in un pod. Quindi provare a visualizzare nuovamente le metriche.

  4. Se la PVC è montata, attieniti alla procedura per la verifica manuale delle metriche Block Storage for VPC, quindi [apri un problema di supporto](/docs/openshift?topic=openshift - get - help. I passi per la verifica manuale nella CLI ti consentono di visualizzare le tue metriche, ma non sono una soluzione per le metriche che non popolano la console. Tuttavia, se si è in grado di verificare manualmente le metriche, ciò indica che esiste un problema di console per cui è necessario aprire un problema.

Visualizzazione manuale delle metriche di archiviazione nella CLI

Se le tue metriche di archiviazione non sono visibili nel dashboard di monitoraggio, puoi visualizzarle manualmente nella CLI. Si noti che la verifica manuale delle metriche di archiviazione è una soluzione temporanea e non una soluzione di monitoraggio permanente per la visualizzazione delle metriche. Dopo aver completato la seguente procedura, se è possibile visualizzare manualmente le metriche nella CLI e non nel dashboard, ciò indica che si è verificato un problema della console per cui è necessario [aprire un problema di supporto](/docs/openshift?topic=openshift - get - help.

Dopo aver completato la seguente procedura, assicurarsi di rimuovere le risorse create durante il debug.

  1. Creare e distribuire una configurazione clusterRole personalizzata. In questo esempio, clusterRole è denominato 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. Crea un account di servizio. In questo esempio, l'account di servizio viene denominato test-sa.

    oc create sa test-sa
    
  3. Aggiungere un clusterRoleBinding a clusterRole.

    oc create clusterrolebinding test-metrics-reader --clusterrole test-metrics-reader --serviceaccount=default:test-sa
    
  4. Elenca i tuoi nodi e prendi nota del nome e dell'IP del nodo per cui desideri raccogliere le metriche.

    oc get nodes
    

    Output di esempio

    NAME          STATUS    ROLES    AGE     VERSION              
    10.111.1.11   Ready     <none>   1d      v1.35+IKS            
    
  5. Crea un file yaml per distribuire un pod sul nodo. Assicurati di specificare l'account di servizio che hai creato e l'indirizzo IP del nodo.

    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. Richiama il token dell'account di servizi dall'interno del pod.

    1. Accedere al pod.

      kubectl exec testpod -it -- bash
      
    2. Eseguite il seguente comando per ottenere il token. Notare che non è presente alcun output.

      token=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)
      
  7. Mentre sei ancora collegato al pod, esegui il comando per visualizzare la metrica di archiviazione. Accertarsi di specificare l'indirizzo IP del nodo.

    curl -k -H "authorization: bearer <token> https://<node_IP>:10250/metrics | grep kubelet_volume_stats
    
  8. Visualizzare le metriche nell'output del terminale. Potrebbe essere necessario attendere diversi minuti per l'output delle metriche. Se non riesci ancora a visualizzare le metriche, [apri un problema di assistenza](/docs/openshift?topic=openshift - get - help.

  9. Dopo aver terminato la visualizzazione delle metriche e aver determinato se il problema è correlato al dashboard o all'agent delle metriche, eliminare le configurazioni e le risorse create nei passi precedenti.

Non saltare questo passo.

  1. Esci dal pod.
    exit
    
  2. Elimina il pod.
    oc delete pod testpod
    
  3. Eliminare il clusterRoleBinding.
    oc delete clusterrolebinding test-metrics-reader
    
  4. Eliminare l'account di servizio.
    oc delete sa test-sa
    
  5. Eliminare il ruolo cluster.
    oc delete clusterrole test-metrics-reader