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 메트릭을 수동으로 확인 한 후 [지원 문제 열기](/docs/openshift?topic=openshift - get-help. CLI에서 수동 확인 단계를 수행하면 메트릭을 볼 수 있지만 콘솔에서 채워지지 않는 메트릭에 대한 솔루션은 아닙니다. 그러나 메트릭을 수동으로 확인할 수 있는 경우 이는 문제를 열어야 하는 콘솔 문제가 있음을 나타냅니다.

CLI에서 수동으로 스토리지 지표 보기

스토리지 지표가 모니터링 대시보드에 표시되지 않으면 CLI에서 수동으로 볼 수 있습니다. 스토리지 메트릭의 수동 검증은 임시 해결책이며 메트릭을 보기 위한 영구 모니터링 솔루션이 아닙니다. 다음 단계를 완료한 후 대시보드가 아닌 CLI에서 메트릭을 수동으로 볼 수 있는 경우 이는 [지원 문제를 열어야]하는 콘솔 문제가 있음을 나타냅니다 (/docs/openshift?topic=openshift - get-help).

다음 단계를 완료한 후 디버깅 중에 작성한 자원을 제거해야 합니다.

  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. clusterRoleBindingclusterRole 에 추가하십시오.

    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. 포드 내에서 서비스 계정 토큰을 검색합니다.

    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. 터미널 출력에서 메트릭을 보십시오. 메트릭이 출력될 때까지 몇 분 정도 기다려야 할 수 있습니다. 여전히 메트릭을 볼 수 없는 경우 [지원 문제를 여십시오](/docs/openshift?topic=openshift - get-help.

  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