Depuración de métricas de Block Storage for VPC

Cuando intenta ver las métricas de Block Storage for VPC en el panel de control de supervisión, las métricas no se rellenan.

Es posible que las métricas no se rellenen en el panel de control por una de las razones siguientes:

  • Es posible que el PVC que desea supervisar no esté montado. Las métricas solo se rellenan para los PVC que se montan en un pod.
  • Podría haber un problema relacionado con la consola, que puede verificarse consultando manualmente las métricas de almacenamiento en la CLI.

Compruebe que el PVC esté montado. Si el problema persiste, visualice manualmente las métricas en la CLI para determinar si la causa está relacionada con problemas con la consola.

  1. Acceda al clúster de Red Hat OpenShift.

  2. Describa el PVC. Si la fila Utilizado por de la salida se rellena con el nombre de un pod, el PVC está montado.

    oc describe pvc <pvc_name>
    

    Salida de ejemplo

    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 el PVC no está montado en un pod, revise los pasos para configurar Block Storage for VPC y monte el PVC en un pod. A continuación, intente volver a ver las métricas.

  4. Si la PVC está montada, siga los pasos para verificar manualmente las métricas de Block Storage for VPC y, a continuación, [abra un problema de soporte](/docs/openshift?topic=openshift-get-help. Los pasos de verificación manual en la CLI permiten ver las métricas, pero no son una solución para las métricas que no se rellenan en la consola. Sin embargo, si puede verificar manualmente las métricas, esto indica que hay un problema de consola para el que debe abrir un problema.

Visualización manual de métricas de almacenamiento en la CLI

Si las métricas de almacenamiento no están visibles en el panel de control de supervisión, puede verlas manualmente en la CLI. Tenga en cuenta que la verificación manual de las métricas de almacenamiento es una solución temporal y no una solución de supervisión permanente para la visualización de métricas. Una vez completados los siguientes pasos, si puede ver manualmente las métricas en la CLI y no en el panel de control, esto indica que existe un problema en la consola para el que debe [abrir una incidencia de soporte] (/docs/openshift?topic=openshift-get-help.

Después de realizar estos pasos, asegúrese de eliminar los recursos que ha creado durante la depuración.

  1. Cree y despliegue una configuración de clusterRole personalizada. En este ejemplo, clusterRole se denomina 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. Cree una cuenta de servicio. En este ejemplo, la cuenta de servicio se denomina test-sa.

    oc create sa test-sa
    
  3. Añada un clusterRoleBinding al clusterRole.

    oc create clusterrolebinding test-metrics-reader --clusterrole test-metrics-reader --serviceaccount=default:test-sa
    
  4. Liste los nodos y anote el nombre y la IP del nodo para el que desea recopilar métricas.

    oc get nodes
    

    Salida de ejemplo

    NAME          STATUS    ROLES    AGE     VERSION              
    10.111.1.11   Ready     <none>   1d      v1.35+IKS            
    
  5. Cree un archivo yaml para desplegar un pod en el nodo. Asegúrese de especificar la cuenta de servicio que ha creado y la dirección 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. Recupere la señal de cuenta de servicio desde dentro del pod.

    1. Inicie sesión en el pod.

      kubectl exec testpod -it -- bash
      
    2. Ejecute el mandato siguiente para obtener la señal. Tenga en cuenta que no hay salida.

      token=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)
      
  7. Mientras todavía está conectado al pod, ejecute el mandato para ver las métricas de almacenamiento. Asegúrese de especificar la dirección IP del nodo.

    curl -k -H "authorization: bearer <token> https://<node_IP>:10250/metrics | grep kubelet_volume_stats
    
  8. Vea las métricas en la salida del terminal. Es posible que tenga que esperar varios minutos hasta que se muestren las métricas. Si todavía no puede ver las métricas, [abra un problema de soporte](/docs/openshift?topic=openshift-get-help.

  9. Cuando haya terminado de ver las métricas y haya determinado si el problema está relacionado con el panel de control o el agente de métricas, suprima las configuraciones y los recursos que ha creado en los pasos anteriores.

No omita este paso.

  1. Salga del pod.
    exit
    
  2. Suprima el pod.
    oc delete pod testpod
    
  3. Suprima el clusterRoleBinding.
    oc delete clusterrolebinding test-metrics-reader
    
  4. Suprima la cuenta del servicio.
    oc delete sa test-sa
    
  5. Suprima el rol de clúster.
    oc delete clusterrole test-metrics-reader