- 인쇄
- PDF
Cluster Monitoring
- 인쇄
- PDF
Cluster Monitoring은 Kubernetes 클러스터내 리소스들에 대한 사용량을 수집하여 Cloud Insight 상품으로 전달합니다. 수집된 데이터는 네이버 클라우드 플랫폼 콘솔의 Ncloud Kubernetes Service 내 Grafana 대시 보드 혹은 Cloud Insight 대시 보드에서 확인할 수 있습니다. 이를 통해 별도의 리소스 모니터링 도구 없이도 사용량을 확인할 수 있습니다.
Cluster Monitoring은 Kubernetes 1.23 버전 이상부터 제공합니다.
1.23 이전 버전의 클러스터는 업그레이드 기능을 이용하여 요구되는 버전을 충족 후 사용할 수 있습니다.
지원되는 버전
Feature\Kubernetes Version | 1.22 | 1.23+ |
---|---|---|
Kubernetes Cluster Monitoring | 미지원 | 지원 |
이용 요금
Cloud Insight에서 발생하는 이용 요금을 따릅니다.
Cloud Insight의 이용 요금에 대한 자세한 기준은 네이버 클라우드 플랫폼 포털의 서비스 > Cloud Insight 를 참고해 주십시오.
데이터 보관 기간
Cloud Insight의 데이터 보관 기간을 따릅니다. 데이터 보관 기간에 대한 자세한 내용은 Cloud Insight 사용준비의 데이터 보관 기간 을 참조해 주십시오.
집계주기 (Interval) | 데이터 보관기간 (오늘로부터) | 권장 데이터 조회 기간 |
---|---|---|
Min1 | 8일 이내 | 1일 |
Min5 | 1개월 이내 | 1주일 |
Min30 | 3개월 이내 | 1개월 |
Hour2 | 6개월 이내 | 1개월 |
Day1 | 1년 이내 | 1개월 |
수집 대상
kube-system
namespace 내 pod들에 대한 모니터링은 지원하지 않습니다.
Kubernetes Cluster Monitoring는 아래 정의된 type
에 해당하는 리소스들을 수집합니다.
타입 | 설명 |
---|---|
CpuMem | pod의 CPU/MEM 리소스 사용량 |
Network | pod의 Network In/Out rate |
Disk | pod의 Blockstorage 리소스 사용량 |
NodeAvailability | 클러스터내 노드 가용량 |
PodStatus | pod의 상태 |
Type: CpuMem
Dimensions
Dimensions | Description |
---|---|
type | CpuMem으로 정의 |
clusterUUID | cluster UUID |
nodeInstanceNo | pod가 위치한 node의 instanceNo |
namespace | pod가 위치한 namespace |
controller | pod를 생성한 controller |
pod | pod 이름 |
Metrics
Metrics | Description |
---|---|
real_cpu | pod cpu 사용량 |
real_mem | pod mem 사용량 |
Type: Network
Dimensions
Dimenions | Description |
---|---|
type | Network로 정의 |
clusterUUID | cluster UUID |
nodeInstanceNo | pod가 위치한 node의 instance id |
namespace | pod가 위치한 namespace |
controller | pod를 생성한 controller |
pod | pod 이름 |
interface | 네트워크 In/Out 이 발생한 interface |
Metrics
Metrics | Description |
---|---|
network_rx_bytes | 수신한 바이트 수 |
network_tx_bytes | 송신한 바이트 수 |
Type: Disk
Dimensions
Dimensions | Description |
---|---|
type | Disk로 정의 |
clusterUUID | cluster UUID |
nodeInstanceNo | pod가 위치한 node의 instanceNo |
namespace | pod가 위치한 namespace |
controller | pod를 생성한 controller |
pod | pod 이름 |
pvc | pvc 이름 |
Metrics
Metrics | Description |
---|---|
available_bytes | 가용한 디스크 바이트 수 |
capacity_bytes | 총 디스크 바이트 수 |
used_bytes | 사용한 디스크 바이트 수 |
disk_used_ratio | 가용한 디스크 비율, 0~1사이의 값 |
Type: NodeAvailability
Dimensions
Dimensions | Description |
---|---|
type | NodeAvailability로 정의 |
clusterUUID | cluster UUID |
Metrics
Metrics | Description |
---|---|
node_total_count | 클러스터 내 노드의 총 개수 |
node_ready_count | 클러스터 내 ready인 노드의 수 |
node_not_ready_count | 클러스터 내 not ready인 노드의 수 |
node_available_ratio | node_ready_count / node_total_count, 0~1사이의 값 |
Type: PodStatus
Dimensions
Dimensions | Description |
---|---|
type | PodStatus로 정의 |
clusterUUID | cluster UUID |
namespace | pod가 위치한 namespace |
controller | pod를 생성한 controller |
Metrics
Metrics | Description |
---|---|
pod_phase_pending | controller에 속한 pod들 중 phase가 pending 인 개수 |
pod_phase_running | controller에 속한 pod들 중 phase가 running 인 개수 |
pod_phase_succeeded | controller에 속한 pod들 중 phase가 succeeded 인 개수 |
pod_phase_failed | controller에 속한 pod들 중 phase가 failed 인 개수 |
pod_available_ratio | controller에 속한 pod들 중 이용 가능한 Pod의 비율, 0~1사이의 값, ReplicaSet , DaemonSet , StatefulSet 지원 |
pod_restart_count | controller에 속한 pod들의 restart count 수의 총합 |
Grafana
Grafana는 시계열 데이터에 대한 시각화를 제공해주는 도구입니다. Cloud Insight로 전송된 데이터를 Grafana 대시보드에서 확인할 수 있습니다.
네이버 클라우드 플랫폼 콘솔의 Ncloud Kubernetes Service 서비스 내 클러스터 하위 목록의 Monitoring 항목에서 Grafana 링크를 확인할 수 있습니다.
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 내 통보 대상자는 네이버 클라우드 플랫폼 콘솔 내 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 등이 실패한 경우 알람을 발생하도록 설정