Debugging für Block Storage for VPC-Metriken durchführen

Wenn Sie versuchen, Block Storage for VPC-Metriken im Überwachungsdashboard anzuzeigen, werden die Metriken nicht gefüllt.

Das Füllen von Metriken im Dashboard kann aus einem der folgenden Gründe fehlschlagen:

  • Der PVC, den Sie überwachen wollen, ist möglicherweise nicht montiert. Metriken werden nur für PVCs gefüllt, die an einen Pod angehängt sind.
  • Möglicherweise liegt ein konsolenbezogenes Problem vor, das durch manuelles Anzeigen der Speichermetriken in der CLI überprüft werden kann.

Überprüfen Sie, ob der PVC angehängt ist. Wenn das Problem bestehen bleibt, zeigen Sie Ihre Metriken manuell in der Befehlszeilenschnittstelle an, um zu ermitteln, ob die Ursache auf Probleme mit der Konsole zurückzuführen ist.

  1. Rufen Sie Ihren Red Hat OpenShift-Cluster auf.

  2. Beschreiben Sie die PVC. Wenn die Zeile Verwendet von der Ausgabe mit dem Namen eines Pods gefüllt wird, wird der PVC angehängt.

    oc describe pvc <pvc_name>
    

    Beispielausgabe

    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. Wenn der PVC nicht an einen Pod angehängt wird, überprüfen Sie die Schritte für Block Storage for VPC einrichten und hängen Sie den PVC an einen Pod an. Versuchen Sie anschließend erneut, die Metriken anzuzeigen.

  4. Wenn der PVC angehängt ist, führen Sie die Schritte zum manuellen Überprüfen der Block Storage for VPC-Metriken aus und [öffnen Sie dann ein Supportproblem](/docs/openshift?topic=openshift-get-help. Die Schritte für die manuelle Überprüfung in der Befehlszeilenschnittstelle ermöglichen es Ihnen, Ihre Metriken anzuzeigen, sind jedoch keine Lösung für Metriken, die in der Konsole nicht gefüllt werden. Wenn Sie Ihre Metriken jedoch manuell überprüfen können, deutet dies darauf hin, dass ein Problem mit der Konsole vorliegt, bei dem Sie ein Problem öffnen müssen.

Speichermetriken in der Befehlszeilenschnittstelle manuell anzeigen

Wenn Ihre Speichermetriken im Monitoring-Dashboard nicht sichtbar sind, können Sie sie manuell in der Befehlszeilenschnittstelle anzeigen. Beachten Sie, dass die manuelle Überprüfung Ihrer Speichermetriken eine vorübergehende Problemumgehung und keine permanente Überwachungslösung zum Anzeigen von Metriken ist. Wenn Sie nach Abschluss der folgenden Schritte die Metriken manuell in der CLI und nicht im Dashboard anzeigen können, deutet dies darauf hin, dass ein Konsolenproblem vorliegt, für das Sie [eine Supportanfrage stellen] müssen (/docs/openshift?topic=openshift-get-help.

Nachdem Sie die folgenden Schritte ausgeführt haben, müssen Sie die Ressourcen entfernen, die Sie beim Debugging erstellt haben.

  1. Erstellen und implementieren Sie eine angepasste clusterRole-Konfiguration. In diesem Beispiel hat clusterRole den Namen 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. Erstellen Sie ein Servicekonto. In diesem Beispiel hat der Service-Account den Namen test-sa.

    oc create sa test-sa
    
  3. Fügen Sie clusterRoleBinding zum clusterRole hinzu.

    oc create clusterrolebinding test-metrics-reader --clusterrole test-metrics-reader --serviceaccount=default:test-sa
    
  4. Führen Sie Ihre Knoten auf und notieren Sie den Namen und die IP des Knotens, für den Sie Metriken erfassen möchten.

    oc get nodes
    

    Beispielausgabe

    NAME          STATUS    ROLES    AGE     VERSION              
    10.111.1.11   Ready     <none>   1d      v1.35+IKS            
    
  5. Erstellen Sie eine YAML-Datei, um einen Pod auf dem Knoten zu implementieren. Stellen Sie sicher, dass Sie das von Ihnen erstellte Servicekonto und die IP-Adresse des Knotens angeben.

    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. Rufen Sie das Servicekontotoken aus dem Pod ab.

    1. Melden Sie sich beim Pod an.

      kubectl exec testpod -it -- bash
      
    2. Führen Sie den folgenden Befehl aus, um das Token abzurufen. Beachten Sie, dass es keine Ausgabe gibt.

      token=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)
      
  7. Führen Sie den Befehl zum Anzeigen der Speichermetriken aus, während Sie noch am Pod angemeldet sind. Stellen Sie sicher, dass Sie die IP-Adresse des Knotens angeben.

    curl -k -H "authorization: bearer <token> https://<node_IP>:10250/metrics | grep kubelet_volume_stats
    
  8. Zeigen Sie die Metriken in der Terminalausgabe an. Es kann sein, dass Sie einige Minuten warten müssen, bis die Metriken ausgegeben werden. Wenn Sie weiterhin keine Metriken anzeigen können, [öffnen Sie ein Support-Problem](/docs/openshift?topic=openshift-get-help.

  9. Nachdem Sie die Metriken angezeigt und festgestellt haben, ob sich das Problem auf das Dashboard oder den Metrikagenten bezieht, löschen Sie die Konfigurationen und Ressourcen, die Sie in den vorherigen Schritten erstellt haben.

Überspringen Sie diesen Schritt nicht.

  1. Verlassen Sie den Pod.
    exit
    
  2. Löschen Sie den Pod.
    oc delete pod testpod
    
  3. Löschen Sie clusterRoleBinding.
    oc delete clusterrolebinding test-metrics-reader
    
  4. Löschen Sie das Servicekonto.
    oc delete sa test-sa
    
  5. Löschen Sie die Clusterrolle.
    oc delete clusterrole test-metrics-reader