안녕하세요,

베스핀글로벌 GCP Support팀입니다.


이번 아티클에서는 주제로 "Cloud Monitoring에 GKE Cluster의 Metric이 표시되지 않는 문제 해결"을 다루고자 합니다.



GKE 클러스터 메트릭 표시 문제 해결


Cloud Monitoring에 GKE Cluster의 Metric이 표시되지 않는 이유는 여러가지 요인이 있을 수 있습니다. 

아래 내용을 확인하여 문제를 해결해 보세요.



1. Monitoring 사용 설정 확인


GKE 클러스터 생성 시 기본적으로 Monitoring이 활성화되어 있습니다. 

하지만 생성 시 또는 이후에 해당 옵션을 비활성화한 경우, Monitoring이 비활성화되어 메트릭이 수집되지 않습니다. 

Google Cloud Console 또는 gcloud 명령어를 사용하여 클러스터의 세부 정보를 확인하고 Monitoring 기능이 활성화되어 있는지 확인하세요.


- Google Cloud Console > Kubernetes Engine > 클러스터 선택 > Features > Cloud Monitoring 확인



- gcloud container clusters describe CLUSTER_NAME



2. 메트릭 수집 지연


새 클러스터를 생성한 후 메트릭이 Cloud Monitoring에 표시되기까지 시간이 소요될 수 있습니다. 

최대 1시간 정도 기다린 후 다시 확인해 보세요.



3. 리소스 부족


클러스터에 리소스가 부족한 경우 Monitoring 기능을 담당하는 Pod(Metrics Server, kube-state-metrics 등)가 예약되지 못할 수 있습니다. 

`kubectl top nodes` 와 `kubectl describe nodes NODE_NAME` 명령어를 사용하여 노드의 리소스 사용량을 확인하고, 필요에 따라 노드 풀의 크기를 조정하거나 노드의 머신 유형을 업그레이드하세요.



4. Metrics Server 및 kube-state-metrics 확인


GKE의 Monitoring 기능은 Metrics Server와 kube-state-metrics를 통해 메트릭을 수집합니다. 

다음 명령어를 사용하여 해당 Pod들이 정상적으로 실행 중인지 확인하세요.


 - kubectl get pods -n kube-system | grep metrics-server

 - kubectl get pods -n kube-system | grep kube-state-metrics


Pod 상태가 `Running`이 아니거나 오류가 발생한 경우, Pod 로그를 확인하여 문제의 원인을 파악하세요.


 - kubectl logs -n kube-system <pod-name>



5. 제어 영역과의 통신 문제


Monitoring 기능을 사용하기 위해 제어 영역의 마스터 노드가 노드와 통신해야 합니다. 

네트워크 연결 문제 또는 방화벽 규칙으로 인해 통신이 차단될 수 있습니다. 

네트워크 구성을 검토하고 필요한 경우 방화벽 규칙을 수정하세요. 

`kubectl get nodes` 명령어를 실행하여 모든 노드의 상태가 `Ready`인지 확인하세요. 

`NotReady` 상태인 노드가 있는 경우, 해당 노드의 로그를 확인하여 문제의 원인을 파악하세요.



참조 링크


[1] GKE 모니터링 대시보드 문제 해결

https://cloud.google.com/kubernetes-engine/docs/troubleshooting/dashboards



관련 문의사항이 있으시면 Support Portal에 문의해 주시기 바랍니다.


감사합니다.