除錯 Block Storage for VPC 度量值

當您嘗試在監控儀表板中檢視 Block Storage for VPC 公制時,公制不會彈出。

由於下列其中一個原因,可能無法在儀表板中移入度量值:

  • 您要監視的 PVC 可能未裝載。 僅針對裝載至 Pod 的 PVC 移入度量值。
  • 可能有主控台相關的問題,可以在 CLI 中手動檢視儲存體度量值來驗證。

檢查 PVC 是否已安裝。 如果問題持續存在,請在 CLI 中手動檢視您的度量值,以判斷原因是否與主控台的問題相關。

  1. 存取您的 Red Hat OpenShift 叢集

  2. 說明 PVC。 如果輸出的 使用者 列中移入 Pod 名稱,則會裝載 PVC。

    oc describe pvc <pvc_name>
    

    輸出範例

    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. 如果 PVC 未裝載至 Pod,請檢閱 設定 Block Storage for VPC 的步驟,並將 PVC 裝載至 Pod。 然後嘗試重新檢視度量值。

  4. 如果 PVC 已裝載,請遵循 手動驗證 Block Storage for VPC 度量值 的步驟,然後 開立支援問題。 CLI 中手動驗證的步驟可讓您檢視度量值,但不是主控台中未移入的度量值解決方案。 不過,如果您能夠手動驗證度量值,這指出有一個主控台問題必須開啟。

在 CLI 中手動檢視儲存體度量值

如果在監視儀表板中看不到您的儲存空間度量值,您可以在 CLI 中手動檢視它們。 請注意,手動驗證儲存體度量值是暫時的暫行解決方法,不是用於檢視度量值的永久監視解決方案。 完成下列步驟之後,如果您能夠在 CLI 而非儀表板中手動檢視度量值,這指出有一個主控台問題,您必須 開啟支援問題

完成下列步驟之後,請務必移除您在除錯時所建立的資源。

  1. 建立並部署自訂 clusterRole 配置。 在此範例中,clusterRole 名為 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. 建立服務帳戶。 在此範例中,服務帳戶命名為 test-sa

    oc create sa test-sa
    
  3. clusterRoleBinding 新增至 clusterRole

    oc create clusterrolebinding test-metrics-reader --clusterrole test-metrics-reader --serviceaccount=default:test-sa
    
  4. 列出節點,並記下您要收集其度量值之節點的名稱及 IP。

    oc get nodes
    

    輸出範例

    NAME          STATUS    ROLES    AGE     VERSION              
    10.111.1.11   Ready     <none>   1d      v1.35+IKS            
    
  5. 建立 yaml 檔案以將 Pod 部署至節點。 請務必指定您建立的服務帳戶及節點 IP 位址。

    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. 從 Pod 內擷取服務帳戶記號。

    1. 登入 pod。

      kubectl exec testpod -it -- bash
      
    2. 執行下列指令以取得令牌。 請注意,沒有輸出。

      token=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)
      
  7. 當您仍登入 Pod 時,請執行指令以檢視儲存體度量值。 請確定指定節點 IP 位址。

    curl -k -H "authorization: bearer <token> https://<node_IP>:10250/metrics | grep kubelet_volume_stats
    
  8. 檢視終端機輸出中的度量值。 您可能需要等待幾分鐘才能輸出指標。 如果您仍然無法檢視度量值,請 開啟支援問題

  9. 完成檢視度量值並判斷問題是否與儀表板或度量值代理程式相關之後,請刪除您在先前步驟中建立的配置和資源。

請勿跳過此步驟。

  1. 結束 Pod。
    exit
    
  2. 刪除 Pod。
    oc delete pod testpod
    
  3. 刪除 clusterRoleBinding
    oc delete clusterrolebinding test-metrics-reader
    
  4. 刪除服務帳戶。
    oc delete sa test-sa
    
  5. 刪除叢集角色。
    oc delete clusterrole test-metrics-reader