AKS(Azure Kubernetes Service)에 대한 사전 모니터링 모범 사례
이 문서에서는 AKS(Azure Kubernetes Service)에서 자동 관리 모니터링에 대한 모범 사례를 다루고 AKS에서 모니터링하도록 권장하는 주요 신호의 포괄적인 목록을 제공합니다.
AKS 클러스터를 사전에 모니터링하는 것은 가동 중지 시간을 줄이고 애플리케이션에 대한 비즈니스 중단을 절약하는 데 중요합니다. 이 프로세스에는 주요 문제 또는 가동 중지 시간으로 이어질 수 있는 클러스터의 비정상적인 동작에 대한 주요 지표를 식별하고 모니터링하는 작업이 포함됩니다.
모니터링 및 경고 개요
AKS에서 모니터링하려면 메트릭, 로그 및 이벤트를 사용하여 클러스터의 상태 및 성능을 보장합니다. 모니터링하는 일반적인 시나리오에는 클러스터의 노드 성능, Pod 상태 및 전체 리소스 사용률이 포함됩니다. 로그는 시스템 이벤트 및 클러스터 작업 및 활동에 대한 인사이트를 제공합니다. AKS가 모니터링을 위해 제공하는 방법 및 신호에 대한 자세한 내용은 AKS(Azure Kubernetes Service) 모니터링을 참조하세요.
클러스터를 사전에 모니터링하는 가장 좋은 방법은 Azure Monitor 경고를 구성하는 것입니다. 경고는 중요한 문제로 확대되기 전에 잠재적인 문제 또는 변칙을 알리기 위한 사전 조치의 역할을 합니다. 주요 메트릭 및 로그에 대한 임계값을 정의하면 이러한 신호가 미리 정의된 제한을 초과하면 리소스 소모 또는 애플리케이션 오류와 같은 잠재적인 문제를 나타내는 즉각적인 경고를 받게 됩니다. 서비스의 성능과 안정성을 측정하려면 애플리케이션에 대한 SLO(서비스 수준 목표) 를 정의하는 것이 좋습니다. SLO에 대한 주요 신호에 대한 경고를 구성하면 고객이 수신하는 애플리케이션 서비스 품질 저하를 신속하게 감지할 수 있습니다. 전반적으로 적시에 경고를 설정하면 문제를 신속하게 조사하고 수정할 수 있으며 가동 중지 시간을 최소화하고 AKS 클러스터에서 실행되는 애플리케이션의 고가용성을 보장할 수 있습니다.
특정 메트릭 유형에 대한 경고를 구성하는 방법
메트릭 유형 | 이러한 메트릭을 찾을 수 있는 위치 | 경고를 구성하는 방법 |
---|---|---|
AKS 플랫폼 메트릭 | Azure Portal의 메트릭 블레이드를 통해 플랫폼 메트릭을 봅니다. | Azure Portal을 통해 메트릭 경고를 만들고, 업데이트하고, 삭제할 수 있습니다. 자세한 내용은 Azure 리소스에 대한 메트릭 경고 만들기를 참조 하세요. |
Azure Managed Prometheus 메트릭 | Prometheus 메트릭에 액세스하려면 Managed Prometheus를 사용하도록 설정해야 합니다. Prometheus 메트릭을 사용하도록 설정하고 보는 방법에 대한 자세한 내용은 Azure Monitor 및 Prometheus를 참조하세요. | Prometheus 경고 구성에 대한 지침은 Prometheus 규칙 그룹에 대한 Azure Monitor 관리 서비스를 참조 하세요. |
Azure 활동 로그 | Azure Portal을 통해 활동 로그를 봅니다. 자세한 내용은 AKS에 대한 Azure 활동 로그를 참조하세요. | Azure Portal을 통해 활동 로그에 대한 경고를 구성합니다. 자세한 내용은 활동 로그 경고를 참조하세요. |
Azure Virtual Machine Scale Set 메트릭 | Azure Portal을 통해 Virtual Machine Scale Set 메트릭을 봅니다. | 1. 노드 풀과 연결된 Virtual Machine Scale Set 인스턴스를 찾으려면 Azure Portal에서 AKS 클러스터의 설정 > 속성 블레이드로 이동합니다. 2. 클러스터와 연결된 인프라 리소스를 보려면 인프라 리소스 그룹을 선택합니다. 3. 경고를 만드는 노드 풀의 이름과 일치하는 Virtual Machine Scale Set 인스턴스를 선택합니다. 4. 경고 블레이드로 이동하여 메트릭 경고를 만듭니다. |
Load Balancer 메트릭 | Azure Portal의 Load Balancer 페이지를 통해 부하 분산 장치 메트릭을 봅니다. | 1. 노드 풀과 연결된 부하 분산 장치 인스턴스를 찾으려면 Azure Portal에서 AKS 클러스터의 설정 > 속성 블레이드로 이동합니다. 2. 클러스터와 연결된 인프라 리소스를 보려면 인프라 리소스 그룹을 선택합니다. 3. 부하 분산 장치 인스턴스를 선택하여 부하 분산 장치에 대한 Azure Portal 페이지를 표시합니다. 4. 경고 페이지로 이동하여 부하 분산 장치 메트릭 경고를 만듭니다. |
로그 및 이벤트 | 로그 및 이벤트에 대해 경고하려면 Container Insights를 사용하도록 설정해야 합니다. 자세한 내용은 Azure Monitor 리소스 로그를 참조 하세요. | 로그 및 이벤트에 대한 경고를 만드는 방법에 대한 지침은 Container Insights에서 로그 검색 경고 만들기를 참조 하세요. |
경고를 구성하기 위한 중요한 신호
AKS 환경의 전체적인 적용 범위를 얻으려면 클러스터의 세 가지 주요 구성 요소에 대한 경고를 구성해야 합니다.
- 클러스터 인프라: 노드, 디스크 및 네트워킹과 같은 클러스터의 기본 인프라를 대상으로 하는 경고입니다.
- 애플리케이션 상태: Pod 및 애플리케이션의 상태를 모니터링하기 위한 경고입니다. 비정상 애플리케이션의 몇 가지 일반적인 지표로는 Pod의 메모리 부족 킬(OOMKills), 준비되지 않은 상태의 Pod 등이 있습니다.
- Kubernetes 컨트롤 플레인: API 서버, etcd 및 기타 구성 요소의 상태 및 성능을 모니터링하는 AKS 컨트롤 플레인에 대한 경고입니다.
다음 섹션에는 모든 AKS 고객이 면밀히 모니터링하는 것이 좋습니다. AKS 팀은 원클릭 환경으로 모든 신호에 대해 경고를 쉽게 사용하도록 설정할 수 있는 기존 권장 경고 기능에 모든 중요한 신호를 추가하기 위해 노력하고 있습니다. Prometheus 메트릭 경고는 현재 공개 미리 보기에서 사용할 수 있으며, 나머지 경고는 2025년 초에 사용할 수 있을 것으로 추정됩니다. 지금은 중요한 신호에 대한 경고를 수동으로 구성할 수 있습니다.
클러스터 인프라 경고
경고 시나리오 | Source | Signal | 권장 임계값 |
---|---|---|---|
클러스터가 실패한 상태입니다. | Azure 활동 로그 | 관리형 클러스터 만들기 또는 업데이트 | 클러스터 업그레이드 또는 만들기 작업이 실패했음을 나타내는 로그 상태가 실패했습니다. |
노드 풀이 실패한 상태입니다. | Azure 활동 로그 | 에이전트 풀 만들기 또는 업데이트 | CRUD(만들기, 읽기, 업그레이드 또는 삭제) 작업 실패로 인해 노드 풀이 실패 상태임을 나타내는 로그 상태가 실패합니다. |
높은 노드 OS 디스크 대역폭 사용량 | Virtual Machine Scale Set 메트릭 | 소비한 OS 디스크 대역폭 백분율 | 노드 OS 디스크 대역폭 사용률이 95%를 초과합니다. |
높은 노드 OS 디스크 IOPS 사용량 | Virtual Machine Scale Set 메트릭 | OS 디스크 IOPS 소비한 백분율 | 노드 OS 디스크 IOPS 사용률이 95%를 초과합니다. |
높은 노드 OS 디스크 공간 사용량 | AKS 플랫폼 메트릭 | 디스크 사용 비율 | 노드 OS 디스크 공간 사용률이 90%를 초과합니다. |
높은 노드 CPU 사용량 | AKS 플랫폼 메트릭 | CPU 사용 비율 | 노드 CPU 사용량이 90%를 초과합니다. |
높은 노드 메모리 사용량 | AKS 플랫폼 메트릭 | 메모리 작업 집합 백분율 | 노드 메모리 사용량이 90%를 초과합니다. |
노드가 NotReady 상태입니다. | AKS 플랫폼 메트릭 | 다양한 노드 조건의 상태 | 노드는 20분 동안 >NotReady 상태입니다. |
SNAT 포트 소모 | LB(Load Balancer) 메트릭 | SNAT 연결 수 | 연결 상태 필터 = "실패" |
애플리케이션 상태 경고
경고 시나리오 | Source | Signal | 권장 임계값 |
---|---|---|---|
비정상 Pod 수가 높습니다. | Azure Managed Prometheus 메트릭 | 경고 이름: KubePodReadyStateLow | AKS 권장 경고로 사용할 수 있습니다. 이 경고를 사용하려면 Kubernetes 클러스터에 대한 권장 경고 규칙을 참조 하세요. |
하나 이상의 Pod가 다시 시작됩니다. | Azure Managed Prometheus 메트릭 | 경고 이름: KubePodContainerRestart | AKS 권장 경고로 사용할 수 있습니다. 이 경고를 사용하려면 Kubernetes 클러스터에 대한 권장 경고 규칙을 참조 하세요. |
하나 이상의 Pod가 CrashLoop 상태에 있습니다. | Azure Managed Prometheus 메트릭 | 경고 이름: KubePodCrashLooping | AKS 권장 경고로 사용할 수 있습니다. 이 경고를 사용하려면 Kubernetes 클러스터에 대한 권장 경고 규칙을 참조 하세요. |
Kubernetes 컨트롤 플레인 경고
경고 시나리오 | Source | Signal | 권장 임계값 |
---|---|---|---|
ETCD가 채워집니다. | Azure Managed Prometheus 메트릭 | etcd_mvcc_db_total_size_in_use_in_bytes | ETCD 사용률이 2GB보다 큽니다. |
API 서버 요청이 너무 많음 오류 | Azure Managed Prometheus 메트릭 | apiserver_request_total | 오류 코드 429에 대한 필터 |
API 서버 웹후크 및 터널 오류 | Azure Managed Prometheus 메트릭 | apiserver_request_total | 오류 코드 500 및 503 필터 |
다음 단계
AKS를 모니터링하는 방법에 대한 자세한 내용은 다음 문서를 참조하세요.
Azure Kubernetes Service