이 문서에서는 AKS(Azure Kubernetes Service) 모니터링 및 EKS(Amazon Elastic Kubernetes Service) 모니터링을 비교합니다. AKS 클러스터 및 해당 워크로드의 로그를 모니터링하고 관리하는 데 사용할 수 있는 옵션에 대해 설명합니다.
비고
이 문서는 Amazon EKS에 익숙한 전문가가 AKS(Azure Kubernetes Service)를 이해하는 데 도움이 되는 일련의 문서의 일부입니다.
Amazon EKS 모니터링 및 로깅
다른 Kubernetes 서비스와 마찬가지로 Amazon EKS에는 컨트롤 플레인과 작업자 노드의 두 가지 주요 구성 요소가 있습니다. 각 계층에는 특정 기능이 있습니다.
Amazon EKS 컨트롤 플레인 및 클러스터 모니터링
Amazon EKS는 Amazon CloudWatch 로그와 통합되어 Amazon EKS 컨트롤 플레인에 대한 로깅 및 모니터링을 제공합니다. 이 통합은 기본적으로 사용하도록 설정되지 않습니다. 다음 구성 요소에 대한 로그를 수집하도록 통합을 구성해야 합니다.
- API 서버 및 API 호출
- 감사 로그 및 사용자 상호 작용
- 인증 프로세스
- 스케줄러 및 컨트롤러 활동
Amazon EKS는 제어 플레인 메트릭을 /metrics
에서 Prometheus 텍스트 형식으로 노출합니다. CloudWatch Container Insights는 Prometheus 메트릭을 수집하고 저장합니다. EKS 클러스터 위에 Prometheus를 배포하고 자체 관리하거나 Prometheus용 Amazon Managed Service를 사용할 수 있습니다.
또한 Amazon EKS는 AWS(Amazon Web Services) CloudTrail과 통합되어 작업 및 API 호출을 추적합니다. 자세한 내용은 AWS CloudTrail을 사용하여 Log Amazon EKS API 호출을 참조하세요.
Amazon EKS 워크로드 모니터링
CloudWatch Container Insights 는 EKS에 배포된 컨테이너화된 애플리케이션에서 메트릭과 로그를 수집하고 집계합니다. Amazon EKS에서 Container Insights를 구현하려면 컨테이너화된 버전의 CloudWatch 에이전트를 사용하거나 OpenTelemetry용 AWS Distro 를 DaemonSet으로 사용합니다. Fluent Bit를 사용하여 로그를 보낼 수 있습니다.
AKS 모니터링 및 로깅
AKS는 다른 Azure 리소스와 마찬가지로 기본 상태 및 성능을 모니터링하는 데 사용할 수 있는 플랫폼 메트릭 및 리소스 로그를 생성합니다.
이 아키텍처의 Visio 파일을 다운로드합니다.
Azure Monitor (Azure 모니터)
AKS는 기본적으로 Azure Monitor와 통합됩니다. Azure Monitor는 Log Analytics 작업 영역이라는 중앙 위치에 메트릭 및 로그를 저장합니다. Azure Monitor는 메트릭 및 로그를 처리하고 분석하여 인사이트와 경고를 제공합니다. 자세한 내용은 Azure Monitor를 사용하여 AKS 모니터링을 참조하세요.
컨테이너 인사이트는 AKS 클러스터에서 생성하는 데이터를 수집, 인덱싱 및 저장하는 Azure Monitor의 기능입니다. AKS에서 호스트되는 관리되는 Kubernetes 클러스터를 모니터링하도록 컨테이너 인사이트를 구성할 수 있습니다. 다른 클러스터 구성을 모니터링할 수도 있습니다. 컨테이너 인사이트는 AKS 상태 및 성능을 모니터링하고 Kubernetes 환경에 맞게 조정된 시각화를 통해 해당 데이터를 제공합니다. EKS와 마찬가지로 AKS 클러스터에 컨테이너 인사이트를 사용하도록 설정하면 컨테이너화된 버전의 Log Analytics 에이전트가 배포됩니다. 에이전트는 Log Analytics 작업 영역으로 데이터를 보냅니다.
컨테이너 인사이트는 Log Analytics 작업 영역 의 데이터를 사용하여 Azure Portal의 시각화를 지원합니다. 메트릭 수집에 대한 더 저렴하고 효율적인 접근 방식을 제공하는 Prometheus용 Azure Monitor 관리 서비스로 전환하는 것이 좋습니다. 컨테이너 인사이트를 사용하여 관리되는 Prometheus 데이터만 사용하여 메트릭을 시각화할 수 있습니다. 자세한 내용은 컨테이너 인사이트에 대한 관리되는 Prometheus 시각화로 전환을 참조하세요.
Kubernetes 클러스터의 포괄적인 모니터링을 보장하려면 다음 서비스 및 Azure Monitor 기능을 사용합니다.
- 효과적인 메트릭 수집을 위한 Prometheus용 관리 서비스
- 로그 수집을 위한 컨테이너 인사이트
- 고급 시각화 기능을 위한 Azure Managed Grafana
Microsoft Sentinel
Microsoft Sentinel 은 기업 전체에 지능형 보안 분석 및 위협 인텔리전스를 제공합니다. Microsoft Sentinel은 공격 검색, 위협 표시 유형, 사전 헌팅 및 위협 대응을 위한 단일 솔루션을 제공합니다.
AKS 커넥터를 사용하여 AKS와 Microsoft Sentinel을 연결해야 합니다. 그런 다음, AKS 진단 로그를 Microsoft Sentinel로 스트리밍하여 인스턴스의 활동을 지속적으로 모니터링할 수 있습니다.
데이터 원본을 Microsoft Sentinel에 연결한 후 데이터를 시각화하고 모니터링할 수 있습니다. Microsoft Sentinel 및 Azure Monitor 통합 문서는 다양한 기능을 제공하여 사용자 지정 대시보드를 만듭니다.
AKS 클러스터 및 워크로드 모니터링
AKS 배포는 클러스터 수준 구성 요소, 관리되는 AKS 구성 요소, Kubernetes 개체 및 워크로드, 애플리케이션 및 외부 리소스로 구성됩니다. AKS 클러스터 및 워크로드 애플리케이션을 모니터링하는 일반적인 전략은 다음과 같은 모니터링 요구 사항으로 구성됩니다.
레벨 | 설명 | 모니터링 요구 사항 |
---|---|---|
클러스터 수준 구성 요소 | 가상 머신 확장 집합은 AKS 노드 및 노드 풀을 나타냅니다. | CPU, 메모리, 디스크 및 네트워크를 포함한 노드 상태 및 리소스 사용량 |
관리되는 AKS 구성 요소 | AKS 제어 평면 구성 요소에는 API 서버, 클라우드 컨트롤러 및 kubelet |
kube-system 네임스페이스의 컨트롤 플레인 로그 및 메트릭 |
Kubernetes 개체 및 워크로드 | 배포, 컨테이너 및 복제본 집합과 같은 Kubernetes 개체 | 리소스 사용량 및 오류 |
응용 프로그램 | AKS 클러스터에서 실행되는 애플리케이션 워크로드 | 애플리케이션 로그 및 서비스 트랜잭션을 비롯한 아키텍처별 모니터링 |
외부 | AKS에 속하지 않지만 클러스터 확장성 및 관리에 필요한 외부 리소스 | 각 구성 요소에 따라 다르다 |
클러스터 수준 구성 요소: 기존 컨테이너 인사이트 보기 및 보고서를 사용하여 클러스터 수준 구성 요소를 모니터링하여 상태, 준비 상태, 성능, CPU 및 메모리 리소스 사용량 및 추세를 파악할 수 있습니다.
관리되는 AKS 구성 요소: Azure Monitor 메트릭 탐색기를 사용하여 Inflight 요청 카운터를 볼 수 있습니다. 이 보기에는 요청 대기 시간 및 작업 큐 처리 시간이 포함됩니다.
Kubernetes 개체 및 워크로드: 기존 컨테이너 인사이트 보기 및 보고서를 사용하여 배포, 컨트롤러, Pod 및 컨테이너를 모니터링할 수 있습니다. 노드 및 컨트롤러 뷰 를 사용하여 노드 및 컨트롤러 에서 실행되는 Pod의 상태 및 성능을 확인합니다. CPU 및 메모리 측면에서 리소스 사용량을 볼 수도 있습니다.
컨테이너 인사이트 컨테이너 뷰는 컨테이너의 상태 및 성능을 보여 줍니다. 또는 개별 컨테이너를 선택하고 해당 이벤트 및 로그를 실시간으로 모니터링할 수 있습니다. 자세한 내용은 컨테이너 인사이트를 사용하여 Kubernetes 클러스터 성능 모니터링을 참조하세요.
응용 프로그램:Application Insights를 사용하여 AKS 및 기타 환경에서 실행되는 애플리케이션을 모니터링할 수 있습니다. Application Insights는 많은 프로그래밍 언어를 지원하는 애플리케이션 성능 관리 도구입니다. 필요에 따라 애플리케이션 코드를 계측하여 요청, 추적, 로그, 예외, 사용자 지정 메트릭 및 엔드 투 엔드 트랜잭션을 캡처할 수 있습니다. 그런 다음 이 데이터를 Application Insights로 보낼 수 있습니다. Java 애플리케이션이 있는 경우 코드를 계측하지 않고 모니터링을 제공할 수 있습니다. 자세한 내용은 AKS에 대한 자동화 계측을 참조하세요.
외부 구성 요소: Azure Monitor 기능을 사용하여 워크로드 애플리케이션에서 사용하는 Azure PaaS(Platform as a Service) 솔루션(예: 데이터베이스 및 기타 Azure 리소스)을 모니터링할 수 있습니다.
Prometheus용 Azure Monitor 관리 서비스
Prometheus는 클라우드 네이티브 컴퓨팅 재단의 인기 있는 오픈 소스 메트릭 모니터링 솔루션입니다. Prometheus는 Kubernetes 클러스터에서 메트릭 데이터를 수집하고 분석합니다. Prometheus용 Azure Monitor 관리형 서비스는 Azure에서 완전히 관리되는 Prometheus 호환 모니터링 솔루션입니다. Azure Monitor 작업 영역에 저장된 데이터는 Azure Managed Grafana 작업 영역과 연결됩니다. Azure Managed Grafana를 사용하여 데이터를 분석할 수 있습니다.
AKS 클러스터 내에서 자체 관리형 솔루션으로 Prometheus를 독립적으로 배포할 수 있습니다. 자체 호스팅 Prometheus를 Azure Monitor와 통합하려면 Prometheus 메트릭을 수집하도록 컨테이너 인사이트를 구성합니다. 내보내기 또는 Pod 애플리케이션을 통해 Prometheus 메트릭 엔드포인트를 노출할 수 있습니다. 컨테이너 인사이트에 대한 컨테이너화된 에이전트는 이러한 메트릭을 수집합니다.
Azure Managed Grafana (Azure 관리형 Grafana)
Azure Managed Grafana 는 Grafana를 기반으로 구축된 데이터 시각화 플랫폼입니다. Microsoft가 운영하고 지원하는 완전 관리형 Azure 서비스입니다. Azure Managed Grafana에는 Kubernetes 및 전체 스택 문제 해결을 모니터링하기 위해 미리 정의된 Grafana 대시보드가 있습니다.
Azure Managed Grafana는 Azure 환경에 최적화되어 있으며 많은 Azure 서비스에서 작동하며 간단한 통합 기능을 제공합니다. 자체 관리형 솔루션으로 Grafana를 독립적으로 배포할 수도 있습니다. 자세한 내용은 Grafana에서 Azure 서비스 모니터링을 참조하세요.
AKS 모니터링 비용
Azure Monitor 가격 책정 모델은 주로 Log Analytics 작업 영역에서 매일 수집하는 데이터의 양을 기반으로 합니다. 비용은 선택한 계획 및 보존 기간에 따라 달라집니다.
컨테이너 인사이트를 사용하도록 설정하기 전에 비용을 예측하고 데이터 수집 및 해당 비용을 제어하는 방법을 이해합니다. 자세한 내용은 AKS 클러스터를 모니터링하기 위한 예상 비용을 참조하세요.
기여자
Microsoft는 이 문서를 유지 관리합니다. 다음 기여자는 이 문서를 작성했습니다.
주요 작성자:
- Paolo Salvatori | 수석 서비스 엔지니어
- Ketan Chawda | 선임 고객 엔지니어
- 로라 니콜라스 | 선임 클라우드 솔루션 설계자
기타 기여자:
- 채드 키텔 | 주요 소프트웨어 엔지니어 - Azure 패턴 및 사례
- Ed Price | 선임 콘텐츠 프로그램 관리자
- Theano Petersen | 기술 작가
LinkedIn 비공개 프로필을 보려면, LinkedIn에 로그인하세요.
다음 단계
- Azure Monitor 프라이빗 링크 범위 사용
- Kubernetes 클러스터에 모니터링 사용
- 컨테이너 인사이트에서 로그 쿼리
- Grafana용 Azure Monitor 데이터 원본
- 교육: Azure 리소스 모니터링 및 백업
- 교육: Application Insights를 사용하여 솔루션 문제 해결
- 교육: Azure 리소스를 기록하고 모니터링하는 솔루션 디자인
- 교육: Azure Monitor 기본 사항