Cluster Monitoring
    • PDF

    Cluster Monitoring

    • PDF

    Article Summary

    VPC 환경에서 이용 가능합니다.

    참고

    Cluster Monitoring은 Kubernetes 1.23 버전 이상부터 제공합니다.
    1.23 이전 버전의 클러스터는 업그레이드 기능을 이용하여 요구되는 버전을 충족 후 사용할 수 있습니다.

    Cluster Monitoring은 Kubernetes 클러스터내 리소스들에 대한 사용량을 수집하여 Cloud Insight 상품으로 전달합니다. 수집된 데이터는 네이버 클라우드 플랫폼 콘솔의 Ncloud Kubernetes Service 내 Grafana 대시 보드 혹은 Cloud Insight 대시 보드에서 확인할 수 있습니다. 이를 통해 별도의 리소스 모니터링 도구 없이도 사용량을 확인할 수 있습니다.

    지원되는 버전

    Feature\Kubernetes Version1.221.23+
    Kubernetes Cluster Monitoring미지원지원

    이용 요금

    Cloud Insight에서 발생하는 이용 요금을 따릅니다.
    Cloud Insight의 이용 요금에 대한 자세한 기준은 네이버 클라우드 플랫폼 포털의 서비스 > Cloud Insight 를 참조해 주십시오.

    수집 대상

    참고

    kube-system 네임스페이스 내 pod들에 대한 모니터링은 지원하지 않습니다.

    Kubernetes Cluster Monitoring는 아래 정의된 type에 해당하는 리소스들을 수집합니다.

    타입설명
    CpuMempod의 CPU/MEM 리소스 사용량
    Networkpod의 Network In/Out rate
    Diskpod의 Blockstorage 리소스 사용량
    NodeAvailability클러스터내 노드 가용량
    PodStatuspod의 상태

    Type: CpuMem

    Dimensions

    DimensionsDescription
    typeCpuMem으로 정의
    clusterUUIDcluster UUID
    nodeInstanceNopod가 위치한 node의 instanceNo
    namespacepod가 위치한 namespace
    controllerpod를 생성한 controller
    podpod 이름

    Metrics

    MetricsDescription
    real_cpupod cpu 사용량
    real_mempod mem 사용량

    Type: Network

    Dimensions

    DimenionsDescription
    typeNetwork로 정의
    clusterUUIDcluster UUID
    nodeInstanceNopod가 위치한 node의 instance id
    namespacepod가 위치한 namespace
    controllerpod를 생성한 controller
    podpod 이름
    interface네트워크 In/Out 이 발생한 interface

    Metrics

    MetricsDescription
    network_rx_bytes수신한 바이트 수
    network_tx_bytes송신한 바이트 수

    Type: Disk

    Dimensions

    DimensionsDescription
    typeDisk로 정의
    clusterUUIDcluster UUID
    nodeInstanceNopod가 위치한 node의 instanceNo
    namespacepod가 위치한 namespace
    controllerpod를 생성한 controller
    podpod 이름
    pvcpvc 이름

    Metrics

    MetricsDescription
    available_bytes가용한 디스크 바이트 수
    capacity_bytes총 디스크 바이트 수
    used_bytes사용한 디스크 바이트 수
    disk_used_ratio가용한 디스크 비율, 0~1사이의 값

    Type: NodeAvailability

    Dimensions

    DimensionsDescription
    typeNodeAvailability로 정의
    clusterUUIDcluster UUID

    Metrics

    MetricsDescription
    node_total_count클러스터 내 노드의 총 개수
    node_ready_count클러스터 내 ready인 노드의 수
    node_not_ready_count클러스터 내 not ready인 노드의 수
    node_available_rationode_ready_count / node_total_count, 0~1사이의 값

    Type: PodStatus

    Dimensions

    DimensionsDescription
    typePodStatus로 정의
    clusterUUIDcluster UUID
    namespacepod가 위치한 namespace
    controllerpod를 생성한 controller

    Metrics

    MetricsDescription
    pod_phase_pendingcontroller에 속한 pod들 중 phase가 pending인 개수
    pod_phase_runningcontroller에 속한 pod들 중 phase가 running인 개수
    pod_phase_succeededcontroller에 속한 pod들 중 phase가 succeeded인 개수
    pod_phase_failedcontroller에 속한 pod들 중 phase가 failed인 개수
    pod_available_ratiocontroller에 속한 pod들 중 이용 가능한 Pod의 비율, 0~1사이의 값, ReplicaSet, DaemonSet, StatefulSet 지원
    pod_restart_countcontroller에 속한 pod들의 restart count 수의 총합

    Grafana

    Grafana는 시계열 데이터에 대한 시각화를 제공해주는 도구입니다. Cloud Insight로 전송된 데이터를 Grafana 대시보드에서 확인할 수 있습니다.
    네이버 클라우드 플랫폼 콘솔의 Ncloud Kubernetes Service 서비스 내 클러스터 하위 목록의 Monitoring 항목에서 Grafana 링크를 확인할 수 있습니다.

    Overview

    보유하고 있는 클러스터의 목록을 확인할 수 있습니다. 다음의 버튼으로 클러스터 내 리소스를 모니터링할 수 있습니다.

    • Nodes: 클러스터 내 워커노드들에 대한 Availability와 CPU/Memory/Disk/Network 리소스 사용량을 조회할 수 있습니다.
    • Pods: 클러스터 내 Pod들에 대한 CPU/Memory/Disk/Network 리소스 사용량을 조회할 수 있습니다.

    Alerts

    클러스터 내 리소스들에 대한 임계치를 설정하고, 조건이 충족하였을 때 알람을 수신할 수 있도록 Event Rule을 설정할 수 있습니다. 설정한 값은 Cloud Insight 서비스에 저장되며, Cloud Insight 서비스의 Event Rule에서도 확인할 수 있습니다.
    Alerts 탭에서 다음 내용을 확인할 수 있습니다.

    • Cloud Insight Event Rule Group
      • 선택된 Cluster에 대한 Event Rule Group을 생성/삭제/조회할 수 있습니다.
      • Event Rule Group 하위에 Metric에 대한 임계치 조건들을 설정할 수 있습니다.
      • 아래의 Product Type을 지원합니다.
        • Ncloud kubernetes service

    생성된 Cloud Insight Event Rule Group을 클릭하면 다음의 세부 그룹들을 확인할 수 있습니다.

    • Monitor Group
      • 모니터링 하기 위한 지표들이 생성되는 리소스 그룹입니다.
    • Metric Group
      • Monitor Group에서 생성된 지표들에 대해 알람 발생을 위한 조건들을 설정한 값들 입니다.
      • New Metric 버튼을 클릭하여, 조건을 등록할 수 있습니다.
    • Notification Group
      • Metric Group에서 설정한 알람이 발생한 경우, 이를 통보할 대상자 그룹입니다.
      • New Recipient 버튼을 클릭하여, 통보 대상자를 등록할 수 있습니다.
    참고

    Notification Group 내 통보 대상자는 Cloud Insight 서비스 내 Notification Recipient 메뉴에서 관리할 수 있습니다. Ncloud Kubernetes Service의 Alerts 메뉴에서는 지원하지 않습니다.

    Metric Group 내 등록할 수 있는 지표들로 다음 사항을 고려할 수 있습니다.

    지표 예시

    • Deployment와 같은 Controller가 특정 개수의 Pod를 스케쥴링을 요청하였으나, admission controller 등의 영향으로 수행되지 않아 기대 비율 이하의 Pod 수가 구동되는 경우
      • pod_available_ratio < 0.7 로 설정하여, desired pod 개수 대비 available pod 개수의 비율이 70%미만이면 알람이 발생하도록 설정
    • Deployment와 같은 Controller가 생성 요청한 Pod들 중 Running 상태가 아닌 것의 개수가 증가하는 경우
      • pod_available_ratio < 0.7 로 설정하여, desired pod 개수 대비 available pod 개수의 비율이 70%미만이면 알람이 발생하도록 설정
      • pod_phase_pending >=1 로 설정하여, phase가 Pending인 pod가 하나 이상 있는 경우 알람을 발생하도록 설정
    • 노드의 상태가 Ready가 아닌 경우
      • node_available_ratio < 0.8 로 설정하여, 전체 노드 중 Ready인 노드의 비율이 80% 미만이면 알람을 발생하도록 설정
      • node_not_ready_count >=1 로 설정하여, 전체 노드 중 Ready가 아닌 노드가 있다면 알람을 발생하도록 설정
    • Crash 상태의 Pod수가 증가하는 경우
      • pod_restart_count >= 10 으로 설정하여, pod가 특정 횟수 이상 kubelet 등에 의해 재시작 되었다면 알람을 발생하도록 설정
    • Cronjob 등의 작업이 실패하여 Pod의 Phase가 Failed인 것이 발생한 경우
      • pod_phase_failed >=1 으로 설정하여, Job 등이 실패한 경우 알람을 발생하도록 설정

    이 문서가 도움이 되었습니까?

    What's Next
    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.