불충분한 CPU

증상

시작하면 원격 분석 포드가 CrashLoopBackoff 상태로 전환됩니다. 이로 인해 포드가 다시 시작될 때 측정항목 또는 그래프에 주기적인 격차가 발생할 수 있습니다. 또한 데이터의 일부 섹션이 누락되어 분석 데이터와 불일치가 발생할 수도 있습니다.

오류 메시지

kubectl을 사용하여 포드 상태를 보면 하나 이상의 측정항목 포드가 CrashLoopBackoff 상태가 됩니다. 다음 명령어를 참조하세요.

kubectl get pods -n APIGEE_NAMESPACE

여기서 APIGEE_NAMESPACE는 Apigee Hybrid 구성요소의 Kubernetes 네임스페이스입니다. 자세한 내용은 apigee 네임스페이스 만들기를 참고하세요.

샘플 출력

NAME                                                      READY   STATUS             RESTARTS   AGE
apigee-metrics-default-telemetry-proxy-1104-hvwoo-zlmlw   0/1     CrashLoopBackoff   10         10m
apigee-metrics-adapter-apigee-telemetry-1104-7fyff-tts65  0/1     CrashLoopBackoff   10         10m
apigee-metrics-default-telemetry-proxy-1104-hvwoo-zlmlw   0/1     FailedScheduling   0          12m

일반적인 진단 단계

  1. 다음 명령어를 사용하여 원격 분석 포드 관련 문제를 이벤트에서 확인합니다.
    kubectl -n apigee get event 

    샘플 출력

    LAST SEEN   TYPE      REASON           OBJECT                                                           MESSAGE
    53m         Normal    SuccessfulCreate job/apigee-cassandra-schema-val-jghunt-20250709-0820206-29251940 Created pod: apigee-cassandra-schema-val-jghunt-20250709-0820206-292519fkt7j
    53m         Normal    Completed        job/apigee-cassandra-schema-val-jghunt-20250709-0820206-29251940 Job completed
    43m         Normal    SuccessfulCreate job/apigee-cassandra-schema-val-jghunt-20250709-0820206-29251950 Created pod: apigee-cassandra-schema-val-jghunt-20250709-0820206-292519l87m8
    43m         Normal    Completed        job/apigee-cassandra-schema-val-jghunt-20250709-0820206-29251950 Job completed
    33m         Normal    SuccessfulCreate job/apigee-cassandra-schema-val-jghunt-20250709-0820206-29251960 Created pod: apigee-cassandra-schema-val-jghunt-20250709-0820206-29251962ncc
        
  2. 다음 명령어를 사용하여 CrashLoopBackOff 상태의 원격 분석 포드의 이벤트도 확인할 수 있습니다.
    kubectl -n apigee describe POD_NAME

    여기서 POD_NAMECrashLoopBackOff 상태에 있는 포드의 이름입니다.

    샘플 출력

     apigee-metrics-apigee-telemetry-app-1101-qc36n-dxzrv    
  3. 다음 명령어를 사용하여 포드의 cpu 상태를 확인할 수도 있습니다.
    kubectl -n apigee get hpa | grep unknown

    샘플 출력

    apigee-metrics-apigee-telemetry-app-1101-qc36n-dxzrv   ReplicaSet/apigee-metrics-apigee-telemetry-app-1101-qc36n-dxzrv   /80%                                2         10        2          8h
     

가능한 원인

원인 설명 다음에 관한 문제 해결 안내
metrics.app.resources.requests.cpumetrics.app.resources.limits.cpu이 누락됨 cpuoverrides.yaml 파일에 지정해야 합니다. Apigee Hybrid

원인

cpuoverrides.yaml 파일에 언급되지 않았으므로 cpu에 정의되지 않은 값이 할당됩니다.

진단

overrides.yaml 파일을 확인하여 metrics.app.resources.requests.cpumetrics.app.resources.limits.cpu에 대해 cpu 값이 모두 정의되어 있는지 확인합니다.

해결 방법

측정항목의 overrides.yaml 파일에 cpu 설정이 누락된 경우 overrides.yaml 파일에 cpu 값을 모두 제공합니다.

  1. overrides.yaml 파일의 metrics 섹션 아래에 다음 구성을 추가합니다.

    metrics:
      app: # The apigee-prometheus-app container in the "app" pod
        resources:
          requests:
            memory: 512Mi # Default value: 512Mi
            cpu: 500m # Default value: 500m
          limits:
            memory: 2Gi # default: 1Gi
            cpu: 500m # Default value: 500m
      

  2. 다음 명령어를 사용하여 변경사항을 적용합니다.
    helm upgrade ENV_RELEASE_NAME apigee-env/ \
    --install \
    --namespace APIGEE_NAMESPACE \
    --set env=ENV_NAME \
    -f OVERRIDES_FILE
    • 여기서 ENV_RELEASE_NAMEapigee-env 차트의 설치 및 업그레이드를 추적하는 데 사용되는 고유한 이름입니다. 일반적으로 ENV_NAME와 동일하지만 환경 이름이 환경 그룹 이름과 같으면 달라야 합니다. 예를 들어 둘 다 이름이 dev인 경우 dev-env-releasedev-envgroup-release를 사용하여 구분할 수 있습니다.

    • 여기서 APIGEE_NAMESPACE는 Apigee Hybrid 구성요소의 Kubernetes 네임스페이스입니다. 자세한 내용은 apigee 네임스페이스 만들기를 참고하세요.

    • 여기서 ENV_NAME은 UI에서 환경을 만들 때 사용한 이름입니다.

    • 여기서 OVERRIDES_FILE는 업그레이드 또는 설치 중에 사용되는 overrides.yaml 파일입니다.

자세한 내용은 구성 속성 참조를 참고하세요.

진단 정보 수집 필요

위 안내를 따른 후에도 문제가 지속되면 다음 진단 정보를 수집한 후 Google Cloud 고객 지원 서비스에 문의하세요.

  1. overrides.yaml 파일
  2. Apigee Hybrid 수집 필요 스크립트의 출력