증상
시작하면 원격 분석 포드가 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
일반적인 진단 단계
- 다음 명령어를 사용하여 원격 분석 포드 관련 문제를 이벤트에서 확인합니다.
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 - 다음 명령어를 사용하여
CrashLoopBackOff상태의 원격 분석 포드의 이벤트도 확인할 수 있습니다.kubectl -n apigee describe POD_NAME
여기서 POD_NAME은
CrashLoopBackOff상태에 있는 포드의 이름입니다.샘플 출력
apigee-metrics-apigee-telemetry-app-1101-qc36n-dxzrv
- 다음 명령어를 사용하여 포드의
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.cpu 및 metrics.app.resources.limits.cpu이 누락됨 |
cpu은 overrides.yaml 파일에 지정해야 합니다. |
Apigee Hybrid |
원인
cpu이 overrides.yaml 파일에 언급되지 않았으므로 cpu에 정의되지 않은 값이 할당됩니다.
진단
overrides.yaml 파일을 확인하여 metrics.app.resources.requests.cpu 및 metrics.app.resources.limits.cpu에 대해 cpu 값이 모두 정의되어 있는지 확인합니다.
해결 방법
측정항목의 overrides.yaml 파일에 cpu 설정이 누락된 경우 overrides.yaml 파일에 cpu 값을 모두 제공합니다.
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
- 다음 명령어를 사용하여 변경사항을 적용합니다.
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --set env=ENV_NAME \ -f OVERRIDES_FILE
여기서 ENV_RELEASE_NAME은
apigee-env차트의 설치 및 업그레이드를 추적하는 데 사용되는 고유한 이름입니다. 일반적으로 ENV_NAME와 동일하지만 환경 이름이 환경 그룹 이름과 같으면 달라야 합니다. 예를 들어 둘 다 이름이dev인 경우dev-env-release및dev-envgroup-release를 사용하여 구분할 수 있습니다.여기서 APIGEE_NAMESPACE는 Apigee Hybrid 구성요소의 Kubernetes 네임스페이스입니다. 자세한 내용은 apigee 네임스페이스 만들기를 참고하세요.
여기서 ENV_NAME은 UI에서 환경을 만들 때 사용한 이름입니다.
여기서 OVERRIDES_FILE는 업그레이드 또는 설치 중에 사용되는
overrides.yaml파일입니다.
진단 정보 수집 필요
위 안내를 따른 후에도 문제가 지속되면 다음 진단 정보를 수집한 후 Google Cloud 고객 지원 서비스에 문의하세요.
overrides.yaml파일- Apigee Hybrid 수집 필요 스크립트의 출력