Block Storage for VPC 메트릭 디버깅

모니터링 대시보드에서 Block Storage for VPC 메트릭을 보려고 하면 메트릭이 채워지지 않습니다.

다음 이유 중 하나로 인해 대시보드에서 메트릭을 채우는 데 실패할 수 있습니다.

  • 모니터하려는 PVC가 마운트되지 않았을 수 있습니다. 메트릭은 팟 (Pod) 에 마운트된 PVC에 대해서만 채워집니다.
  • CLI에서 스토리지 지표를 수동으로 확인하여 확인할 수 있는 콘솔 관련 문제가 있을 수 있습니다.

PVC가 제대로 장착되어 있는지 확인하십시오. 문제가 지속되면 CLI에서 메트릭을 수동으로 보고 원인이 콘솔 문제와 관련되어 있는지 판별하십시오.

  1. 계정에 로그인하십시오. If applicable, target the appropriate resource group. 클러스터에 대한 컨텍스트를 설정하십시오.

  2. PVC를 설명하십시오. 출력의 사용자 행이 팟 (Pod) 의 이름으로 채워지면 PVC가 마운트됩니다.

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

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

스토리지 지표가 모니터링 대시보드에 표시되지 않으면 CLI에서 수동으로 볼 수 있습니다. 스토리지 메트릭의 수동 검증은 임시 해결책이며 메트릭을 보기 위한 영구 모니터링 솔루션이 아닙니다. 다음 단계를 완료한 후 대시보드가 아닌 CLI에서 메트릭을 수동으로 볼 수 있는 경우 이는 [지원 문제를 열어야 하는]콘솔 문제가 있음을 나타냅니다 (/docs/containers?topic=containers - 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
    
    kubectl apply -f <file_name>
    
  2. 서비스 계정을 작성하십시오. 이 예제에서 서비스 계정의 이름은 test-sa 입니다.

    kubectl create sa test-sa
    
  3. clusterRoleBinding 를 clusterRole 에 추가하십시오.

    kubectl create clusterrolebinding test-metrics-reader --clusterrole test-metrics-reader --serviceaccount=default:test-sa
    
  4. 노드를 나열하고 지표를 수집할 노드의 이름 및 IP를 기록해 두십시오.

    kubectl get nodes
    

    출력 예

    NAME          STATUS    ROLES    AGE     VERSION              
    10.111.1.11   Ready     <none>   1d      v1.36+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
    
    kubectl apply -f <file_name>
    
  6. 포드 내부에서 서비스 계정 토큰을 가져옵니다.

    1. 팟(Pod)에 로그인하십시오.
        kubectl exec testpod -it -- bash
        ```
    1. 토큰을 얻으려면 다음 명령어를 실행하세요. 출력이 없습니다.
    
    ```sh {: pre}
        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/containers?topic=containers - get-help.

  9. 메트릭 보기를 완료하고 문제가 대시보드 또는 메트릭 에이전트와 관련되어 있는지 여부를 판별한 후 이전 단계에서 작성한 구성 및 자원을 삭제하십시오.

이 단계를 건너뛰지 마십시오.

  1. 팟(Pod)을 종료하십시오.
    exit
    
  2. 팟(Pod)을 삭제하십시오.
    kubectl delete pod testpod
    
  3. clusterRoleBinding을(를) 삭제하십시오.
    kubectl delete clusterrolebinding test-metrics-reader
    
  4. 서비스 계정을 삭제하십시오.
    kubectl delete sa test-sa
    
  5. 클러스터 역할을 삭제하십시오.
    kubectl delete clusterrole test-metrics-reader