Azure Monitor를 사용하여 Kubernetes를 모니터링하는 모범 사례

이 문서에서는 AKS(Azure Kubernetes Service) 및 Azure Arc 지원 Kubernetes 클러스터의 상태 및 성능을 모니터링하는 모범 사례를 제공합니다. 이 지침은 Azure Well-Architected Framework에 설명된 뛰어난 아키텍처의 5가지 원칙을 핵심 요소로 합니다.

안정성

클라우드에서도 오류가 발생한다는 것을 인정합니다. 오류를 완전히 방지하는 대신 단일 실패 구성 요소의 영향을 최소화하는 것이 목표입니다. 다음 정보를 사용하여 Azure Monitor를 가장 잘 활용하여 Kubernetes 클러스터 및 모니터링 환경의 안정성을 보장합니다.

디자인 검사 목록

  • 클러스터에 대해 Prometheus 메트릭 스크래핑을 사용하도록 설정합니다.
  • 클러스터의 로그 및 성능 데이터 수집에 컨테이너 인사이트를 사용하도록 설정합니다.
  • AKS 클러스터에 대한 제어 평면 로그를 수집하는 진단 설정을 만듭니다.
  • 권장되는 Prometheus 경고를 사용하도록 설정합니다.
  • 컨테이너 인사이트를 지원하는 Log Analytics 작업 영역의 가용성을 확인합니다.

구성 권장 사항

권장 장점
클러스터에 대해 Prometheus 메트릭 스크래핑을 사용하도록 설정합니다. Prometheus 환경이 아직 없는 경우 Prometheus용 Azure Monitor 관리 서비스를 사용하여 클러스터에서 Prometheus를 사용하도록 설정합니다. Azure Managed Grafana를 사용하여 수집된 Prometheus 데이터를 분석합니다. 기본 구성 이외의 추가 메트릭을 수집하려면 Prometheus용 Azure Monitor 관리 서비스에서 Prometheus 메트릭의 스크래핑 사용자 지정을 참조하세요.
클러스터의 로그 및 성능 데이터 수집에 컨테이너 인사이트를 사용하도록 설정합니다. 컨테이너 인사이트는 클러스터의 각 노드에서 stdout/stderr 로그, 성능 메트릭 및 Kubernetes 이벤트를 수집합니다. 노드 및 기타 구성 요소의 가용성을 포함하여 이 데이터를 분석하기 위한 대시보드 및 보고서를 제공합니다. Log Analytics를 사용하여 수집된 로그의 가용성 오류를 식별합니다.
AKS 클러스터에 대한 제어 평면 로그를 수집하는 진단 설정을 만듭니다. AKS는 Azure Monitor에서 컨트롤 플레인 로그를 리소스 로그로 구현합니다 . 로그 쿼리를 사용하여 가용성에 영향을 주는 오류 및 문제를 식별할 수 있도록 이러한 로그를 Log Analytics 작업 영역으로 보내는 진단 설정을 만듭니다.
권장되는 Prometheus 경고를 사용하도록 설정합니다. Azure Monitor의 경고는 문제가 감지되면 사전에 알려 줍니다. 클러스터에서 가장 일반적인 가용성 및 성능 문제를 감지하는 권장 Prometheus 경고 규칙 집합으로 시작합니다. 컨테이너 인사이트에서 수집한 데이터를 사용하여 로그 검색 경고를 추가할 수 있습니다.
컨테이너 인사이트를 지원하는 Log Analytics 작업 영역의 가용성을 확인합니다. 컨테이너 인사이트는 Log Analytics 작업 영역에 의존합니다. 작업 영역의 안정성을 보장하기 위한 권장 사항은 Azure Monitor 로그에 대한 모범 사례를 참조하세요.

보안

보안은 아키텍처에서 가장 중요한 요소입니다. Azure Monitor는 최소 권한 원칙과 심층 방어 원칙을 모두 사용하는 기능을 제공합니다. 다음 정보를 사용하여 Kubernetes 클러스터를 모니터링하고 권한 있는 사용자만 수집된 데이터에 액세스하는지 확인합니다.

디자인 검사 목록

  • 클러스터에 대한 관리 ID 인증을 사용하여 Container Insights에 연결합니다.
  • 클러스터에 Azure 프라이빗 링크를 사용하여 프라이빗 엔드포인트를 사용하여 Azure Monitor 작업 영역에 연결하는 것이 좋습니다.
  • 트래픽 분석을 사용하여 클러스터와 클러스터의 네트워크 트래픽을 모니터링합니다.
  • 네트워크 관찰 기능을 사용하도록 설정합니다.
  • 컨테이너 인사이트를 지원하는 Log Analytics 작업 영역의 보안을 보장합니다.

구성 권장 사항

권장 장점
클러스터에 대한 관리 ID 인증을 사용하여 Container Insights에 연결합니다. 관리 ID 인증 은 새 클러스터의 기본값입니다. 레거시 인증을 사용하는 경우 관리 ID로 마이그레이션하여 인증서 기반 로컬 인증을 제거해야 합니다.
클러스터에 Azure 프라이빗 링크를 사용하여 프라이빗 엔드포인트를 사용하여 Azure Monitor 작업 영역에 연결하는 것이 좋습니다. Prometheus용 Azure 관리형 서비스는 기본적으로 퍼블릭 엔드포인트를 사용하는 Azure Monitor 작업 영역에 데이터를 저장합니다. 퍼블릭 엔드포인트에 대한 커넥트 이온은 엔드 투 엔드 암호화로 보호됩니다. 프라이빗 엔드포인트가 필요한 경우 Azure 프라이빗 링크를 사용하여 클러스터가 권한 있는 프라이빗 네트워크를 통해 작업 영역에 연결할 수 있도록 할 수 있습니다. 프라이빗 링크를 사용하여 ExpressRoute 또는 VPN을 통해 작업 영역 데이터를 강제로 수집할 수도 있습니다.

프라이빗 링크에 대한 클러스터 구성에 대한 자세한 내용은 Managed Prometheus 및 Azure Monitor 작업 영역에 대한 데이터 수집에 대한 Private Link를 참조하세요. 프라이빗 링크를 사용하여 데이터를 쿼리하는 방법에 대한 자세한 내용은 Managed Prometheus 및 Azure Monitor 작업 영역에 대한 프라이빗 엔드포인트 사용을 참조하세요.
트래픽 분석을 사용하여 클러스터와 클러스터의 네트워크 트래픽을 모니터링합니다. 트래픽 분석은 Azure Network Watcher NSG 흐름 로그를 분석하여 Azure 클라우드의 트래픽 흐름에 대한 인사이트를 제공합니다. 이 도구를 사용하여 클러스터에 대한 데이터 반출이 없는지 확인하고 불필요한 공용 IP가 노출되는지 감지합니다.
네트워크 관찰 기능을 사용하도록 설정합니다. AKS 에 대한 네트워크 관찰성 추가 기능은 Kubernetes 네트워킹 스택의 여러 계층에서 관찰 가능성을 제공합니다. 클러스터의 서비스 간 액세스를 모니터링하고 관찰합니다(동서 트래픽).
컨테이너 인사이트를 지원하는 Log Analytics 작업 영역의 보안을 보장합니다. 컨테이너 인사이트는 Log Analytics 작업 영역에 의존합니다. 작업 영역의 보안을 보장하기 위한 권장 사항은 Azure Monitor 로그에 대한 모범 사례를 참조하세요.

비용 최적화

비용 최적화는 불필요한 비용을 줄이고 운영 효율성을 높이는 방법을 말합니다. 다양한 구성 옵션과 수집되는 데이터의 양을 줄일 수 있는 기회를 이해하여 Azure Monitor 비용을 크게 줄일 수 있습니다. Azure Monitor에서 요금을 청구하는 다양한 방법과 월별 청구서를 확인하는 방법을 알아보려면 Azure Monitor 요금 및 사용량을 참조하세요.

참고 항목

Azure Monitor의 모든 기능에 대한 비용 최적화 권장 사항은 Azure Monitor에서 비용 최적화를 참조하세요.

디자인 검사 목록

  • Prometheus 메트릭의 Container Insights 컬렉션을 사용하도록 설정하지 마세요.
  • Container Insights에서 데이터 수집을 수정하도록 에이전트 컬렉션을 구성합니다.
  • Container Insights를 통해 메트릭 데이터 수집에 대한 설정을 수정합니다.
  • Azure Portal에서 Container Insights 환경을 사용하지 않는 경우 메트릭 데이터의 Container Insights 컬렉션을 사용하지 않도록 설정합니다.
  • 컨테이너 로그 테이블을 정기적으로 쿼리하지 않거나 경고에 사용하지 않는 경우 기본 로그로 구성합니다.
  • 필요하지 않은 리소스 로그의 컬렉션을 제한합니다.
  • AKS 리소스 로그에 대한 리소스별 로깅을 사용하고 테이블을 기본 로그로 구성합니다.
  • OpenCost를 사용하여 Kubernetes 비용에 대한 세부 정보를 수집합니다.

구성 권장 사항

권장 장점
Prometheus를 사용하여 메트릭 스크래핑을 사용하도록 설정한 경우 Log Analytics 작업 영역에서 Prometheus 메트릭의 Container Insights 컬렉션을 사용하도록 설정하지 마세요. Prometheus용 Azure Monitor 관리 서비스를 사용하여 클러스터에서 Prometheus 메트릭을 스크래핑하는 것 외에도 Log Analytics 작업 영역에서 Prometheus 메트릭을 수집하도록 컨테이너 인사이트를 구성할 수 있습니다. 이는 Managed Prometheus의 데이터와 중복되며 추가 비용이 발생합니다.
Container Insights에서 데이터 수집을 수정하도록 에이전트를 구성합니다. 수집 제어에 설명된 대로 Container Insights에서 수집한 데이터를 분석하여 비용을 절감하고 필요하지 않은 데이터 수집을 중지하도록 구성을 조정합니다.
Container Insights를 통해 메트릭 데이터 수집에 대한 설정을 수정합니다. 메트릭 데이터가 수집되는 빈도와 Container Insights에서 수집한 네임스페이스를 모두 수정하는 방법은 비용 최적화 설정 사용을 참조하세요.
Azure Portal에서 Container Insights 환경을 사용하지 않는 경우 메트릭 데이터의 Container Insights 컬렉션을 사용하지 않도록 설정합니다. 컨테이너 인사이트는 Managed Prometheus동일한 많은 메트릭 값을 수집합니다. 컨테이너 인사이트에서 비용 최적화 설정 사용에서 설명한 대로 로그 및 이벤트만 수집하도록 컨테이너 인사이트를 구성하여 이러한 메트릭의 수집을 사용하지 않도록 설정할 수 있습니다. 이 구성은 Azure Portal에서 컨테이너 인사이트 환경을 사용하지 않도록 설정하지만 Grafana를 사용하여 Prometheus 메트릭 및 Log Analytics를 시각화하여 Container Insights에서 수집한 로그 데이터를 분석할 수 있습니다.
컨테이너 로그 테이블을 정기적으로 쿼리하지 않거나 경고에 사용하지 않는 경우 기본 로그로 구성합니다. 컨테이너 인사이트 스키마를 기본 로그와 호환되는 ContainerLogV2 로 변환하면 비용을 절감하기 위해 수집 제어에 설명된 대로 상당한 비용 절감을 제공할 수 있습니다.
필요하지 않은 리소스 로그의 컬렉션을 제한합니다. AKS 클러스터에 대한 컨트롤 플레인 로그는 Azure Monitor에서 리소스 로그로 구현됩니다. 이 데이터를 Log Analytics 작업 영역으로 보내는 진단 설정을 만듭니다. 수집해야 하는 범주에 대한 권장 사항은 AKS 클러스터에 대한 제어 평면 로그 수집을 참조하세요.
AKS 리소스 로그에 대한 리소스별 로깅을 사용하고 테이블을 기본 로그로 구성합니다. AKS는 리소스 로그에 대한 Azure 진단 모드 또는 리소스별 모드를 지원합니다. 리소스 로그를 지정하여 기본 로그에 대한 테이블을 구성하는 옵션을 사용하도록 설정합니다. 이 옵션을 사용하면 가끔씩만 쿼리하고 경고에 사용하지 않는 로그에 대한 수집 요금이 줄어듭니다.
OpenCost를 사용하여 Kubernetes 비용에 대한 세부 정보를 수집합니다. OpenCost 는 Kubernetes 비용을 이해하고 AKS 비용 표시 기능을 지원하기 위한 오픈 소스 공급업체 중립적인 CNCF 샌드박스 프로젝트입니다. 클러스터 관리자가 비용을 분석하고 분류할 수 있도록 고객별 Azure 가격 책정 외에도 자세한 비용 데이터를 Azure Storage로 내보냅니다.

운영 우수성

운영 우수성은 프로덕션에서 서비스를 안정적으로 실행하는 데 필요한 운영 프로세스를 의미합니다. 다음 정보를 사용하여 Kubernetes 클러스터를 모니터링하기 위한 운영 요구 사항을 최소화합니다.

디자인 검사 목록

  • Kubernetes 환경의 모든 계층을 모니터링하기 위한 지침을 검토합니다.
  • Azure Arc 지원 Kubernetes를 사용하여 Azure 외부의 클러스터를 모니터링합니다.
  • 클라우드 네이티브 도구에 Azure 관리 서비스를 사용합니다.
  • AKS 클러스터를 기존 모니터링 도구에 통합합니다.
  • Azure 정책을 사용하여 Kubernetes 클러스터에서 데이터 수집을 사용하도록 설정합니다.

구성 권장 사항

권장 장점
Kubernetes 환경의 모든 계층을 모니터링하기 위한 지침을 검토합니다. Container Insights 를 사용하여 Kubernetes 클러스터 성능을 모니터링하려면 네트워크, 클러스터 및 애플리케이션 계층에서 전체 Kubernetes 환경을 모니터링하기 위한 지침 및 모범 사례가 포함되어 있습니다.
Azure Arc 지원 Kubernetes를 사용하여 Azure 외부의 클러스터를 모니터링합니다. Azure Arc 지원 Kubernetes 를 사용하면 다른 클라우드에서 실행되는 Kubernetes 클러스터를 Container Insights 및 Prometheus용 Azure Monitor 관리형 서비스를 포함하여 AKS 클러스터와 동일한 도구를 사용하여 모니터링할 수 있습니다.
클라우드 네이티브 도구에 Azure 관리 서비스를 사용합니다. PrometheusAzure 관리 Grafana 용 Azure Monitor 관리형 서비스는 기본 인프라를 운영하지 않고도 클라우드 네이티브 도구 Prometheus 및 Grafana의 모든 기능을 지원합니다. 이러한 도구를 신속하게 프로비전하고 최소한의 오버헤드로 Kubernetes 클러스터를 온보딩할 수 있습니다. 이러한 서비스를 사용하면 광범위한 커뮤니티 규칙 및 대시보드 라이브러리에 액세스하여 Kubernetes 환경을 모니터링할 수 있습니다.
AKS 클러스터를 기존 모니터링 도구에 통합합니다. Prometheus 및 Grafana에 대한 기존 투자가 있는 경우 Azure 서비스 및 클라우드 네이티브 도구를 사용하여 Kubernetes 클러스터 모니터링의 지침을 사용하여 AKS 클러스터 및 Azure 관리형 서비스를 기존 환경에 통합합니다.
Azure 정책을 사용하여 Kubernetes 클러스터에서 데이터 수집을 사용하도록 설정합니다. Azure Policy를 사용하여 Prometheus 메트릭, 컨테이너 인사이트 및 진단 설정을 사용하도록 설정하기 위해 데이터 수집을 사용하도록 설정합니다. 이렇게 하면 새 클러스터가 자동으로 모니터링되고 모니터링 구성이 적용됩니다.

성능 효율성

성능 효율성은 사용자가 배치된 요구 사항을 효율적인 방식으로 충족하기 위해 워크로드의 크기를 조정할 수 있는 기능입니다. 다음 정보를 사용하여 Kubernetes 클러스터의 성능을 모니터링하고 최대 성능을 위해 구성되었는지 확인합니다.

디자인 검사 목록

  • 클러스터에 대해 Prometheus 메트릭의 컬렉션을 사용하도록 설정합니다.
  • 컨테이너 인사이트를 사용하도록 설정하여 클러스터의 성능을 추적합니다.
  • 권장되는 Prometheus 경고를 사용하도록 설정합니다.

구성 권장 사항

권장 장점
클러스터에 대해 Prometheus 메트릭의 컬렉션을 사용하도록 설정합니다. Prometheus는 Cloud Native Compute Foundation의 클라우드 네이티브 메트릭 솔루션이며 Kubernetes 클러스터에서 메트릭 데이터를 수집하고 분석하는 데 사용되는 가장 일반적인 도구입니다. Prometheus 환경이 아직 없는 경우 Prometheus용 Azure Monitor 관리 서비스를 사용하여 클러스터에서 Prometheus를 사용하도록 설정합니다. Azure Managed Grafana를 사용하여 수집된 Prometheus 데이터를 분석합니다.

기본 구성 이외의 추가 메트릭을 수집하려면 Prometheus용 Azure Monitor 관리 서비스에서 Prometheus 메트릭의 스크래핑 사용자 지정을 참조하세요.
컨테이너 인사이트를 사용하도록 설정하여 클러스터의 성능을 추적합니다. Kubernetes 클러스터에 컨테이너 인사이트를 사용하도록 설정하면 통합 문서를 사용하여 클러스터 구성 요소의 성능을 추적할 수 있습니다. 이 데이터는 Prometheus에서 수집한 데이터와 겹칠 수 있습니다. 비용에 대한 권장 사항은 비용 최적화를 참조하세요.
권장되는 Prometheus 경고를 사용하도록 설정합니다. Azure Monitor의 경고는 문제가 감지되면 사전에 알려 줍니다. 클러스터에서 가장 일반적인 가용성 및 성능 문제를 감지하는 권장 Prometheus 경고 규칙 집합으로 시작합니다. 컨테이너 인사이트에서 수집한 데이터를 사용하여 로그 검색 경고를 추가할 수 있습니다.

다음 단계

  • Azure Monitor의 전체 배포에 대한 모범 사례를 가져옵니다.