편집

다음을 통해 공유


Kubernetes 모니터링 및 로깅

AKS(Azure Kubernetes Service)
Azure Log Analytics
Azure Monitor

이 문서에서는 AKS(Azure Kubernetes Service) 모니터링을 Amazon EKS(Amazon Elastic Kubernetes Service)와 비교하는 방법을 설명합니다. 이 문서에서는 AKS 클러스터 및 해당 워크로드의 로그를 모니터링하고 관리하는 다양한 옵션을 안내합니다.

참고 항목

이 문서는 Amazon EKS에 익숙한 전문가가 Azure Kubernetes Service(AKS)를 이해하는 데 도움이 되는 일련의 문서의 일부입니다.

Amazon EKS 모니터링 및 로깅

다른 Kubernetes 서비스와 마찬가지로 EKS에는 컨트롤 플레인과 작업자 노드의 두 가지 주요 구성 요소가 있습니다. 각 계층에 대한 특정 기능이 있습니다.

Amazon EKS 컨트롤 플레인 및 클러스터 모니터링

Amazon EKS는 Amazon CloudWatch 로그와 통합되어 Amazon EKS 컨트롤 플레인에 대한 로깅 및 모니터링을 제공합니다. 이 통합은 기본적으로 사용하도록 설정되지 않지만 구성된 경우 로그온을 수집합니다.

  • API 서버 및 API 호출.
  • 감사 로그 및 사용자 상호 작용.
  • Authenticator 로그.
  • 스케줄러 및 컨트롤러 로그.

Amazon EKS는 /metrics 엔드포인트에서 Prometheus 텍스트 형식으로 컨트롤 플레인 메트릭을 노출합니다. CloudWatch Container Insights는 Prometheus 메트릭을 수집하고 저장할 수 있습니다. EKS 클러스터 위에 Prometheus를 배포하고 자체 관리하거나 Prometheus용 Amazon Managed Service를 사용할 수 있습니다.

또한 Amazon EKS는 AWS(Amazon Web Services) CloudTrail과 통합되어 작업 및 API 호출을 추적합니다. 자세한 내용은 AWS CloudTrail을 사용하여 Amazon EKS API 호출 로깅을 참조하세요.

Amazon EKS 워크로드 모니터링

CloudWatch Container Insights는 EKS에 배포된 컨테이너화된 애플리케이션에서 메트릭 및 로그를 수집하고 집계할 수 있습니다. 컨테이너화된 버전의 CloudWatch 에이전트를 사용하거나 OpenTelemetry용 AWS Distro를 DaemonSet으로 사용하여 Amazon EKS에서 Container Insights를 구현할 수 있습니다. FluentBit를 사용하여 로그를 보낼 수 있습니다.

AKS 모니터링 및 로깅

AKS는 다른 Azure 리소스와 마찬가지로 기본 상태 및 성능을 모니터링하는 데 사용할 수 있는 플랫폼 메트릭 및 리소스 로그를 생성합니다.

AKS 로깅 및 모니터링을 보여 주는 다이어그램.

이 아키텍처의 Visio 파일을 다운로드합니다.

Azure Monitor

AKS는 기본적으로 Azure Monitor와 통합됩니다. Azure Monitor는 Log Analytics 작업 영역이라는 중앙 위치에 메트릭 및 로그를 저장합니다. 이 데이터는 처리되고 분석되어 인사이트와 경고를 제공합니다. 자세한 내용은 Azure Monitor로 AKS(Azure Kubernetes Service) 모니터링을 참조하세요.

Container Insights는 AKS 클러스터에서 생성하는 데이터를 수집, 인덱싱 및 저장하는 Azure Monitor의 기능입니다. AKS 및 기타 클러스터 구성에서 호스트되는 관리되는 Kubernetes 클러스터를 모니터링하도록 Container Insights를 구성할 수 있습니다. Container Insights는 Kubernetes 환경에 맞게 조정된 시각화를 사용하여 AKS 상태 및 성능을 모니터링할 수 있습니다. EKS와 마찬가지로 AKS 클러스터에 Container Insights를 사용하도록 설정하면 Log Analytics 작업 영역으로 데이터를 보내는 Log Analytics 에이전트의 컨테이너화된 버전이 배포됩니다.

Microsoft Sentinel

Microsoft Sentinel 은 엔터프라이즈 전체에 지능형 보안 분석 및 위협 인텔리전스를 제공합니다. Microsoft Sentinel을 사용하면 공격 검색, 위협 표시 유형, 자동 관리 헌팅 및 위협 응답을 위한 단일 솔루션을 얻을 수 있습니다.

Microsoft Sentinel은 AKS연결되어야 합니다. 이 커넥터를 통해 Azure Kubernetes Service (AKS) 진단 로그를 Microsoft Sentinel로 스트리밍할 수 있으므로 모든 인스턴스에서 작업을 지속적으로 모니터링할 수 있습니다.

데이터 원본을 Microsoft Sentinel에 연결한 후에는 사용자 지정 대시보드를 만드는 데 다양한 기능을 제공하는 Microsoft Sentinel 및 Azure Monitor 통합 문서를 사용하여 데이터를 시각화하고 모니터링할 수 있습니다.

AKS 클러스터 및 워크로드 모니터링

AKS 배포는 클러스터 수준 구성 요소, 관리되는 AKS 구성 요소, Kubernetes 개체 및 워크로드, 애플리케이션 및 외부 리소스로 나눌 수 있습니다. 다음 표에서는 AKS 클러스터 및 워크로드 애플리케이션을 모니터링하기 위한 일반적인 전략을 보여 줍니다. 각 계층에는 고유한 모니터링 요구 사항이 있습니다.

Level 설명 모니터링 요구 사항
클러스터 수준 구성 요소 AKS 노드 및 노드 풀로 추상화된 가상 머신 확장 집합 CPU, 메모리, 디스크 및 네트워크를 포함한 노드 상태 및 리소스 사용률
관리되는 AKS 구성 요소 API 서버, 클라우드 컨트롤러 및 kubelet을 포함한 AKS 컨트롤 플레인 구성 요소 kube-system 네임스페이스의 컨트롤 플레인 로그 및 메트릭
Kubernetes 개체 및 워크로드 배포, 컨테이너 및 복제본 집합과 같은 Kubernetes 개체 리소스 사용률 및 실패
애플리케이션 AKS 클러스터에서 실행되는 애플리케이션 워크로드 아키텍처와 관련된 모니터링(애플리케이션 로그 및 서비스 트랜잭션 포함)
외부 AKS에 속하지 않지만 클러스터 확장성 및 관리에 필요한 외부 리소스 각 구성 요소에 따라 다름
  • 클러스터 수준 구성 요소: 기존 Container Insights 보기 및 보고서를 사용하여 클러스터 수준 구성 요소를 모니터링하여 상태, 준비 상태, 성능, CPU 및 메모리 리소스 사용률 및 추세를 이해할 수 있습니다.

  • 관리되는 AKS 구성 요소: 메트릭 탐색기를 사용하여 Inflight 요청 카운터를 볼 수 있습니다. 이 보기에는 요청 대기 시간 및 작업 큐 처리 시간이 포함됩니다.

  • Kubernetes 개체 및 워크로드: 기존 Container Insights 보기 및 보고서를 사용하여 배포, 컨트롤러, Pod 및 컨테이너를 모니터링할 수 있습니다. 노드컨트롤러 보기를 사용하여 노드 및 컨트롤러에서 실행되는 Pod의 상태 및 성능과 CPU 및 메모리 측면에서 해당 리소스 사용량을 확인합니다.

Container Insights 컨테이너 보기에서 컨테이너의 상태 및 성능을 보거나 개별 컨테이너를 선택하고 이벤트 및 로그를 실시간으로 모니터링할 수 있습니다. 이 보기의 사용 및 컨테이너 상태와 성능 분석에 대한 자세한 내용은 Container Insights를 사용하여 Kubernetes 클러스터 성능 모니터링을 참조하세요.

  • 애플리케이션:Application Insights를 사용하여 AKS 및 기타 환경에서 실행되는 애플리케이션을 모니터링할 수 있습니다. Application Insights는 많은 프로그래밍 언어를 지원하는 애플리케이션 성능 관리 도구입니다. 필요에 따라 애플리케이션 코드를 계측하여 요청, 추적, 로그, 예외, 사용자 지정 메트릭 및 엔드투엔드 트랜잭션을 캡처하고 이 데이터를 Application Insights로 보낼 수 있습니다. Java 애플리케이션이 있는 경우 코드를 계측하지 않고 모니터링을 제공할 수 있습니다. 자세한 내용은 Kubernetes에 대한 제로 계측 애플리케이션 모니터링을 참조하세요.

  • 외부 구성 요소: Azure Monitor 기능을 사용하여 워크로드 애플리케이션에서 사용하는 모든 Azure PaaS(Platform-as-a-Service)를 모니터링할 수 있습니다(예: 데이터베이스 및 기타 Azure 리소스).

Prometheus용 Azure Monitor 관리 서비스

Prometheus는 Cloud Native Compute Foundation인기 있는 오픈 소스 메트릭 모니터링 솔루션이며 Kubernetes 클러스터에서 메트릭 데이터를 수집하고 분석하는 데 사용되는 가장 일반적인 도구입니다. Prometheus용 Azure Monitor 관리형 서비스는 Azure Managed Grafana를 사용하여 데이터를 분석할 수 있도록 Grafana 작업 영역에 연결된 Azure Monitor 작업 영역에 데이터를 저장하는 완전히 관리되는 Prometheus 호환 모니터링 솔루션입니다.

Prometheus는 Azure Kubernetes Service 클러스터 내에서 자체 관리형 솔루션으로 독립적으로 배포할 수도 있습니다. 자체 호스팅 Prometheus를 Azure Monitor와 통합할 수 있습니다. Prometheus 메트릭을 수집하도록 Container Insights를 구성할 수 있습니다. 내보내기 또는 Pod 애플리케이션을 통해 Prometheus 메트릭 엔드포인트를 노출할 수 있으며 Container Insights에 대한 컨테이너화된 에이전트는 메트릭을 긁어냅니다.

Azure Managed Grafana

Azure Managed Grafana는 Grafana를 기반으로 빌드된 데이터 시각화 플랫폼입니다. Microsoft에서 운영 및 지원하는 완전 관리형 Azure 서비스로 빌드됩니다. Kubernetes 모니터링 및 전체 스택 문제 해결을 위해 미리 정의된 여러 Grafana 대시보드를 사용할 수 있습니다.

Azure Managed Grafana는 Azure 환경에 최적화되어 있으며 많은 Azure 서비스와 함께 작동하며 간단한 통합 기능을 제공합니다. 또는 자체 관리형 솔루션으로 Grafana를 독립적으로 배포할 수도 있습니다. 자세한 내용은 Grafana에서 Azure 서비스 모니터링을 참조하세요.

AKS 모니터링 비용

Azure Monitor 가격 책정 모델은 주로 Log Analytics 작업 영역에 매일 수집되는 데이터의 양을 기반으로 합니다. 비용은 선택한 계획 및 보존 기간에 따라 다릅니다.

Container Insights를 사용하도록 설정하기 전에 비용을 예측하고 데이터 수집 및 해당 비용을 제어하는 방법을 이해합니다. 자세한 지침은 AKS 클러스터를 모니터링하기 위한 비용 예측을 참조하세요.

참가자

Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.

주요 작성자:

기타 기여자:

비공개 LinkedIn 프로필을 보려면 LinkedIn에 로그인합니다.

다음 단계