Kubernetes 클러스터에 대한 권장 경고 규칙

Azure Monitor의 경고는 Azure 리소스의 상태 및 성능과 관련된 문제를 사전에 식별합니다. 이 문서에서는 Kubernetes 클러스터에 대해 미리 정의된 권장 메트릭 경고 규칙 집합을 사용하도록 설정하고 편집하는 방법을 설명합니다.

경고 규칙 유형

Kubernetes 클러스터에 사용되는 메트릭 경고 규칙에는 두 가지 유형이 있습니다.

경고 규칙 형식 설명
Prometheus 메트릭 경고 규칙(미리 보기) Azure Monitor Prometheus용 관리 서비스에서 Kubernetes 클러스터로부터 수집된 메트릭 데이터를 사용합니다. 이러한 규칙을 사용하려면 클러스터에서 Prometheus를 활성화해야 하며, 규칙은 Prometheus 규칙 그룹에 저장됩니다.
플랫폼 메트릭 경고 규칙 AKS 클러스터에서 자동으로 수집되고 Azure Monitor 경고 규칙으로 저장되는 메트릭을 사용합니다.

다음 방법 중 하나를 사용하여 클러스터에 대해 권장 경고 규칙을 사용하도록 설정합니다. 동일한 클러스터에 대해 Prometheus 및 플랫폼 메트릭 경고 규칙을 모두 사용하도록 설정할 수 있습니다.

Azure Portal을 사용하면 Prometheus 규칙 그룹이 클러스터와 동일한 지역에 만들어집니다.

  1. 클러스터의 경고 메뉴에서 권장 사항 설정을 선택합니다.

    권장 사항 설정 단추를 보여 주는 AKS 클러스터의 스크린샷.

  2. 사용 가능한 Prometheus 및 플랫폼 경고 규칙이 Pod, 클러스터, 노드 수준으로 구성된 Prometheus 규칙과 함께 표시됩니다. Prometheus 규칙 그룹의 토글 단추를 선택하여 해당 규칙 집합을 사용하도록 설정합니다. 그룹을 확장하여 개별 규칙을 확인합니다. 기본값을 그대로 두거나 개별 규칙을 사용하지 않도록 설정하고 이름과 심각도를 편집할 수 있습니다.

    Prometheus 경고 규칙을 사용하도록 설정하는 스크린샷.

  3. 플랫폼 메트릭 규칙의 토글 단추를 선택하여 해당 규칙을 사용하도록 설정합니다. 규칙을 확장하여 이름, 심각도, 임계값과 같은 세부 정보를 수정할 수 있습니다.

    플랫폼 메트릭 경고 규칙을 사용하도록 설정하는 스크린샷.

  4. 알림 방법을 하나 이상 선택하여 새 작업 그룹을 만들거나 이 경고 규칙 집합에 대한 알림 세부 정보가 포함된 기존 작업 그룹을 선택합니다.

  5. 저장을 클릭하여 규칙 그룹을 저장합니다.

규칙 그룹을 만든 후에는 포털에서 동일한 페이지를 사용하여 규칙을 편집할 수 없습니다. Prometheus 메트릭의 경우 아직 활성화되지 않은 규칙을 활성화하는 것을 포함해 규칙을 수정하려면 해당 규칙 그룹을 편집해야 합니다. 플랫폼 메트릭의 경우 각 경고 규칙을 편집할 수 있습니다.

  1. 클러스터의 경고 메뉴에서 권장 사항 설정을 선택합니다. 이미 만들어진 모든 규칙 또는 규칙 그룹에는 이미 생성됨이라는 레이블이 지정됩니다.

  2. 규칙 또는 규칙 그룹을 확장합니다. Prometheus의 경우 규칙 그룹 보기, 플랫폼 메트릭의 경우 경고 규칙 보기를 클릭합니다.

    규칙 그룹 보기 옵션의 스크린샷.

  3. Prometheus 규칙 그룹의 경우:

    1. 규칙을 선택하여 그룹의 경고 규칙을 봅니다.

    2. 수정하려는 규칙 옆에 있는 편집 아이콘을 클릭합니다. 경고 규칙 만들기의 지침을 사용하여 규칙을 수정합니다.

      Prometheus 경고 규칙을 편집하는 옵션의 스크린샷.

    3. 그룹에서 규칙 편집을 마친 후 저장을 클릭하여 규칙 그룹을 저장합니다.

  4. 플랫폼 메트릭의 경우:

    1. 편집을 클릭하여 경고 규칙에 대한 세부 정보를 엽니다. 경고 규칙 만들기의 지침을 사용하여 규칙을 수정합니다.

      플랫폼 메트릭 규칙을 편집하는 옵션의 스크린샷.

경고 규칙 그룹 비활성화

규칙에서 알림을 그만 받으려면 해당 규칙 그룹을 사용하지 않도록 설정합니다.

  1. 권장 경고 규칙 편집에 설명된 대로 Prometheus 경고 규칙 그룹 또는 플랫폼 메트릭 경고 규칙을 봅니다.

  2. 개요 메뉴에서 사용 안 함을 선택합니다.

    규칙 그룹을 사용하지 않도록 설정하는 옵션의 스크린샷.

다음 표에는 각 권장 경고 규칙의 세부 정보가 나열되어 있습니다. GitHub에서 각 소스 코드를 볼 수 있으며 Prometheus 커뮤니티의 문제 해결 가이드도 확인할 수 있습니다.

Prometheus 커뮤니티 경고 규칙

클러스터 수준 경고

경고 이름 설명 default_threshold 시간 프레임(분)
KubeCPUQuotaOvercommit 지난 5분 동안 네임스페이스에 할당된 CPU 리소스 할당량이 클러스터 노드에서 사용 가능한 CPU 리소스를 50% 이상 초과합니다. >1.5 5
KubeMemoryQuotaOvercommit 지난 5분 동안 네임스페이스에 할당된 메모리 리소스 할당량이 클러스터 노드에서 사용 가능한 메모리 리소스를 50% 이상 초과합니다. >1.5 5
OOM이 종료된 컨테이너의 수가 0보다 큼 지난 5분 동안 OOM(메모리 부족) 이벤트로 인해 Pod 내의 컨테이너가 하나 이상 중단되었습니다. >0 5
KubeClientErrors 지난 15분 동안 Kubernetes API 요청의 클라이언트 오류(5xx로 시작하는 HTTP 상태 코드) 비율이 총 API 요청 비율의 1%를 초과합니다. >0.01 15
KubePersistentVolumeFillingUp 영구 볼륨이 채워지고 있으며 사용 가능한 공간 비율, 사용된 공간 및 지난 6시간 동안의 사용 가능 공간에 대한 예측 선형 추세를 기반으로 평가할 때 사용 가능한 공간이 곧 부족할 것으로 예상됩니다. 이러한 조건은 지난 60분 동안 평가됩니다. 해당 없음 60
KubePersistentVolumeInodesFillingUp 지난 15분 동안 영구 볼륨 내 inodes의 3% 미만이 사용 가능한 상태입니다. <0.03 15
KubePersistentVolumeErrors 지난 5분 동안 하나 이상의 영구 볼륨이 실패하거나 보류 중인 단계에 있습니다. >0 5
KubeContainerWaiting 지난 60분 동안 하나 이상의 Kubernetes Pod 내 컨테이너가 대기 상태에 있습니다. >0 60
KubeDaemonSetNotScheduled 지난 15분 동안 어떤 노드에서도 하나 이상의 Pod가 예약되지 않았습니다. >0 15
KubeDaemonSetMisScheduled 지난 15분 동안 클러스터 내에서 하나 이상의 Pod가 잘못 예약되었습니다. >0 15
KubeQuotaAlmostFull 지난 15분 동안 Kubernetes 리소스 할당량의 사용률이 엄격한(hard) 한도의 90%에서 100% 사이입니다. >0.9 <1 15

노드 수준 경고

경고 이름 설명 default_threshold 시간 프레임(분)
KubeNodeUnreachable 지난 15분 동안 노드에 연결하지 못했습니다. 1 15
KubeNodeReadinessFlapping 지난 15분 동안 노드의 준비 상태가 3회 이상 변경되었습니다. 2 15

Pod 수준 경고

경고 이름 설명 default_threshold 시간 프레임(분)
평균 PV 사용량이 80%보다 큼 지난 15분 동안 Pod의 PV(영구 볼륨) 평균 사용량이 80%를 초과합니다. >0.8 15
KubeDeploymentReplicasMismatch 지난 10분 동안 원하는 복제본 수와 사용 가능한 복제본 수가 일치하지 않습니다. 해당 없음 10
KubeStatefulSetReplicasMismatch 지난 15분 동안 StatefulSet의 준비 복제본 수가 StatefulSet의 총 복제본 수와 일치하지 않습니다. 해당 없음 15
KubeHpaReplicasMismatch 지난 15분 동안 클러스터의 Horizontal Pod Autoscaler가 원하는 복제본 수와 일치하지 않았습니다. 해당 없음 15
KubeHpaMaxedOut 지난 15분 동안 클러스터의 HPA(Horizontal Pod Autoscaler)가 최대 복제본 수로 실행되었습니다. 해당 없음 15
KubePodCrashLooping 지난 15분 동안 하나 이상의 Pod가 CrashLoopBackOff 상태에 있습니다. 이 경우 Pod에 시작 후 지속적으로 충돌이 발생하고 성공적으로 복구되지 않습니다. >=1 15
KubeJobStale 지난 6시간 동안 하나 이상의 작업 인스턴스가 성공적으로 완료되지 않았습니다. >0 360
지난 1시간 동안 Pod 컨테이너가 다시 시작됨 Kubernetes 클러스터의 Pod 내에 있는 하나 이상의 컨테이너가 지난 1시간 내에 한 번 이상 다시 시작되었습니다. >0 15
Pod의 준비 상태가 80%보다 작음 지난 5분 동안 Kubernetes 클러스터의 모든 배포 또는 DaemonSet에 대해 준비 상태의 Pod 비율이 80% 미만으로 떨어졌습니다. <0.8 5
실패 상태의 Pod 수가 0보다 큽니다. 지난 5분 동안 하나 이상의 Pod가 실패 상태입니다. >0 5
KubePodNotReadyByController 지난 15분 동안 하나 이상의 Pod가 준비 상태가 아닙니다(예: "보류 중" 또는 "알 수 없음" 단계). >0 15
KubeStatefulSetGenerationMismatch 지난 15분 동안 관찰된 Kubernetes StatefulSet 생성이 메타데이터 생성과 일치하지 않습니다. 해당 없음 15
KubeJobFailed 지난 15분 내에 하나 이상의 Kubernetes 작업이 실패했습니다. >0 15
컨테이너당 평균 CPU 사용량이 95%보다 큼 지난 5분 동안 컨테이너당 평균 CPU 사용량이 95%를 초과합니다. >0.95 5
컨테이너당 평균 메모리 사용량이 95%보다 큼 지난 5분 동안 컨테이너당 평균 메모리 사용량이 95%를 초과합니다. >0.95 10
KubeletPodStartUpLatencyHigh 지난 10분 동안 Pod 시작 대기 시간의 99번째 백분위수가 60초를 초과합니다. >60 10

플랫폼 메트릭 경고 규칙

경고 이름 설명 default_threshold 시간 프레임(분)
노드 CPU 비율이 95%를 초과합니다. 지난 5분 동안 노드 CPU 비율이 95%를 초과합니다. 95 5
노드 메모리 작업 집합 비율이 100%를 초과합니다. 지난 5분 동안 노드 메모리 작업 집합 비율이 95%를 초과합니다. 100 5

레거시 컨테이너 인사이트 메트릭 경고(미리 보기)

컨테이너 인사이트의 메트릭 규칙은 2024년 5월 31일에 사용 중지됩니다(이전에 2026년 3월 14일로 발표되었음). 해당 규칙은 2023년 8월 15일부터 포털을 사용한 생성이 불가능했습니다. 이러한 규칙은 공개 미리 보기로 제공되었지만 이제 이 문서에서 설명한 새로운 권장 메트릭 경고가 제공됨에 따라 일반 공급이 시작되기 전에 사용이 중지되었습니다.

이 레거시 경고 규칙을 이미 활성화한 경우 해당 규칙을 비활성화하고 새 환경을 사용해야 합니다.

메트릭 경고 규칙 사용 안 함

  1. 클러스터의 인사이트 메뉴에서 권장 경고(미리 보기)를 선택합니다.
  2. 각 경고 규칙의 상태를 사용 안 함으로 변경합니다.

다음 단계