시스템 측정항목 문제 해결


이 페이지에서는 Google Kubernetes Engine(GKE) 클러스터에서 시스템 측정항목 관련 문제를 해결하는 방법을 보여줍니다.

추가 지원이 필요하면 Cloud Customer Care에 문의하세요.

측정항목 에이전트에 충분한 메모리가 있는지 확인

대부분의 경우 GKE 측정항목 에이전트에 대한 기본 리소스 할당만으로 충분합니다. 하지만 DaemonSet가 반복적으로 비정상 종료되는 경우 다음 안내에 따라 종료 이유를 확인할 수 있습니다.

  1. GKE 측정항목 에이전트 포드의 이름을 가져옵니다.

    kubectl get pods -n kube-system -l component=gke-metrics-agent
    

    상태가 CrashLoopBackOff인 포드를 찾습니다.

    출력은 다음과 비슷합니다.

    NAME                    READY STATUS           RESTARTS AGE
    gke-metrics-agent-5857x 0/1   CrashLoopBackOff 6        12m
    
  2. 상태가 CrashLoopBackOff인 포드를 설명합니다.

    kubectl describe pod POD_NAME -n kube-system
    

    POD_NAME을 이전 단계의 포드 이름으로 바꿉니다.

    포드의 종료 이유가 OOMKilled인 경우 에이전트에 추가 메모리가 필요합니다.

    출력은 다음과 비슷합니다.

      containerStatuses:
      ...
      lastState:
        terminated:
          ...
          exitCode: 1
          finishedAt: "2021-11-22T23:36:32Z"
          reason: OOMKilled
          startedAt: "2021-11-22T23:35:54Z"
    
  3. 실패한 측정항목 에이전트가 있는 노드에 노드 라벨을 추가합니다. 영구 또는 임시 노드 라벨을 사용할 수 있습니다. 20MB를 더 추가하는 것이 좋습니다. 에이전트가 계속 다운되면 이 명령어를 다시 실행하고 노드 라벨을 더 많은 추가 메모리를 요청하는 라벨로 바꿀 수 있습니다.

    영구 라벨로 노드 풀을 업데이트하려면 다음 명령어를 실행합니다.

    gcloud container node-pools update NODEPOOL_NAME \
        --cluster=CLUSTER_NAME \
        --node-labels=ADDITIONAL_MEMORY_NODE_LABEL \
        --location=COMPUTE_LOCATION
    

    다음을 바꿉니다.

    • NODEPOOL_NAME: 노드 풀의 이름입니다.
    • CLUSTER_NAME: 기존 클러스터의 이름입니다.
    • ADDITIONAL_MEMORY_NODE_LABEL: 추가 메모리 노드 라벨 중 하나로서 다음 중 하나를 사용합니다.
      • 10MB 추가: cloud.google.com/gke-metrics-agent-scaling-level=10
      • 20MB 추가: cloud.google.com/gke-metrics-agent-scaling-level=20
      • 50MB 추가: cloud.google.com/gke-metrics-agent-scaling-level=50
      • 100MB 추가: cloud.google.com/gke-metrics-agent-scaling-level=100
      • 200MB 추가: cloud.google.com/gke-metrics-agent-scaling-level=200
      • 500MB 추가: cloud.google.com/gke-metrics-agent-scaling-level=500
    • COMPUTE_LOCATION: 클러스터의 Compute Engine 위치입니다.

    또는 다음 명령어를 사용하여 업그레이드한 후 유지되지 않는 임시 노드 라벨을 추가할 수 있습니다.

    kubectl label node/NODE_NAME \
    ADDITIONAL_MEMORY_NODE_LABEL --overwrite
    

    다음을 바꿉니다.

    • NODE_NAME: 영향을 받는 측정항목 에이전트의 노드 이름
    • ADDITIONAL_MEMORY_NODE_LABEL: 추가 메모리 노드 라벨 중 하나. 위 예시의 값 중 하나를 사용하세요.

다음 단계

추가 지원이 필요하면 Cloud Customer Care에 문의하세요.