다음을 통해 공유


Azure Kubernetes Service의 모니터링

이 콘텐츠는 Azure용 클라우드 네이티브 .NET 애플리케이션 설계 eBook 에서 발췌한 것으로, .NET 문서에서 제공되거나 오프라인 상태에서도 읽을 수 있는 PDF(무료 다운로드 가능)로 제공됩니다.

Cloud Native .NET apps for Azure eBook cover thumbnail.

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

컨테이너용 Azure Monitor

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

Consuming logs from various containers그림 7-10. 다양한 컨테이너에서 로그 사용

Prometheus는 널리 사용되는 오픈 소스 메트릭 모니터링 솔루션입니다. Cloud Native Compute Foundation의 일부입니다. 일반적으로 Prometheus를 사용하려면 자체 저장소를 사용하여 Prometheus 서버를 관리해야 합니다. 그러나 컨테이너용 Azure Monitor는 Prometheus 메트릭 엔드포인트와 직접 통합을 제공하므로 별도의 서버가 필요하지 않습니다.

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

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

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

A sample dashboard showing logging and metric information from a number of running containers.그림 7-11. 실행 중인 많은 컨테이너의 로깅 및 메트릭 정보를 보여 주는 샘플 대시보드.

Log.Finalize()

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