다음을 통해 공유


Azure Kubernetes Services에서 모니터링

팁 (조언)

이 콘텐츠는 eBook, Architecting Cloud Native .NET Applications for Azure에서 발췌한 것으로, .NET Docs 또는 오프라인에서 읽을 수 있는 다운로드 가능한 무료 PDF로 제공됩니다.

Azure eBook의 클라우드 네이티브 .NET 앱 커버 썸네일.

Kubernetes의 기본 제공 로깅은 원시적입니다. 그러나 Kubernetes에서 로그를 제대로 분석할 수 있는 위치로 가져오기 위한 몇 가지 훌륭한 옵션이 있습니다. AKS 클러스터를 모니터링해야 하는 경우 Kubernetes용 Elastic Stack을 구성하는 것이 좋은 솔루션입니다.

컨테이너용 Azure Monitor

컨테이너용 Azure Monitor는 Kubernetes뿐만 아니라 DC/OS, Docker Swarm 및 Red Hat OpenShift와 같은 다른 오케스트레이션 엔진에서도 로그를 사용할 수 있습니다.

다양한 컨테이너에서 로그를 수집하기 그림 7-10. 다양한 컨테이너에서 로그 사용

Prometheus 는 인기 있는 오픈 소스 메트릭 모니터링 솔루션입니다. 클라우드 네이티브 컴퓨팅 파운데이션의 일부입니다. 일반적으로 Prometheus를 사용하려면 자체 저장소를 사용하여 Prometheus 서버를 관리해야 합니다. 그러나 컨테이너용 Azure Monitor는 Prometheus 메트릭 엔드포인트와 직접 통합을 제공하므로 별도의 서버가 필요하지 않습니다.

로그 및 메트릭 정보는 클러스터에서 실행되는 컨테이너뿐만 아니라 클러스터 호스트 자체에서도 수집됩니다. 이를 통해 두 로그 정보의 상관 관계를 지정하여 오류를 훨씬 쉽게 추적할 수 있습니다.

로그 수집기 설치는 WindowsLinux 클러스터에서 다릅니다. 그러나 두 경우 모두 로그 수집이 Kubernetes DaemonSet으로 구현되므로 로그 수집기가 각 노드에서 컨테이너로 실행됩니다.

Azure Monitor 디먼을 실행하는 오케스트레이터 또는 운영 체제에 관계없이 로그 정보는 사용자가 익숙한 동일한 Azure Monitor 도구로 전달됩니다. 이 방법은 하이브리드 Kubernetes/Azure Functions 환경과 같은 다양한 로그 원본을 혼합하는 환경에서 병렬 환경을 보장합니다.

여러 실행 중인 컨테이너의 로깅 및 메트릭 정보를 보여 주는 샘플 대시보드입니다. 그림 7-11. 많은 실행 중인 컨테이너의 로깅 및 메트릭 정보를 보여 주는 샘플 대시보드입니다.

Log.Finalize()

로깅은 대규모로 애플리케이션을 배포하는 데 가장 간과되고 가장 중요한 부분 중 하나입니다. 애플리케이션의 크기와 복잡성이 증가함에 따라 디버깅의 어려움도 증가합니다. 최고 품질의 로그를 사용할 수 있으면 디버깅이 훨씬 쉬워지고 "거의 불가능"의 영역에서 "즐거운 경험"으로 이동합니다.