cAdvisor/Kubelet 측정항목 수집 및 보기


이 페이지에서는 Google Cloud Managed Service for Prometheus를 사용함으로써 Google Kubernetes Engine(GKE) 클러스터를 구성하여 선별된 cAdvisor/Kubelet 측정항목 집합을 Cloud Monitoring으로 보내는 방법을 설명합니다. 이 페이지에서는 이러한 측정항목을 Monitoring에 기록할 때 형식을 지정하는 방법과 측정항목을 쿼리하는 방법도 설명합니다.

선별된 측정항목 집합은 기본적으로 모든 Kubernetes 배포에 내장된 cAdvisor/Kubelet 측정항목 집합의 하위 집합이고 처리 볼륨 및 연결된 비용을 줄이는 것과 관련된 측정항목을 포함합니다.

시작하기 전에

시작하기 전에 다음 태스크를 수행했는지 확인합니다.

  • Google Kubernetes Engine API를 사용 설정합니다.
  • Google Kubernetes Engine API 사용 설정
  • 이 태스크에 Google Cloud CLI를 사용하려면 gcloud CLI를 설치한 후 초기화합니다. 이전에 gcloud CLI를 설치한 경우 gcloud components update를 실행하여 최신 버전을 가져옵니다.

요구사항

cAdvisor/Kubelet 측정항목을 수집하려면 GKE 클러스터가 다음 요구사항을 충족해야 합니다.

  • 클러스터가 GKE 버전 1.29.3-gke.1093000 이상을 실행하고 있어야 합니다.
  • 클러스터에 시스템 측정항목이 사용 설정되어 있어야 합니다. 시스템 측정항목은 버전 1.29.3-gke.1093000 이상을 실행하는 클러스터를 만들 때 기본적으로 사용 설정됩니다.
  • 클러스터에 Google Cloud Managed Service for Prometheus 관리형 수집이 사용 설정되어 있습니다. 관리형 수집은 버전 1.29.3-gke.1093000 이상을 실행하는 클러스터를 만들 때 기본적으로 사용 설정됩니다.

cAdvisor/Kubelet 측정항목 수집 구성

Google Cloud 콘솔, gcloud CLI 또는 Terraform을 사용하여 기존 GKE 클러스터에서 cAdvisor/Kubelet 측정항목을 사용 설정할 수 있습니다.

Console

클러스터의 세부정보 탭에서 cAdvisor/Kubelet 측정항목을 구성하려면 다음을 수행합니다.

  1. Google Cloud 콘솔에서 Kubernetes 클러스터 페이지로 이동합니다.

    Kubernetes 클러스터로 이동

    검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Kubernetes Engine인 결과를 선택합니다.

  2. 클러스터 이름을 클릭합니다.

  3. Cloud Monitoring이라는 라벨이 지정된 특성 행에서 수정 아이콘을 클릭합니다.

  4. Cloud Monitoring 수정 대화상자가 나타나면 Cloud Monitoring 사용 설정이 선택되어 있는지 확인합니다.

  5. 구성요소 드롭다운 메뉴에서 측정항목을 수집할 cAdvisor/Kubelet 구성요소를 선택합니다.

    • cAdvisor
    • Kubelet
  6. 확인을 클릭합니다.

  7. 변경사항 저장을 클릭합니다.

gcloud

측정항목을 수집하려면 클러스터를 업데이트합니다.

gcloud container clusters update CLUSTER_NAME \
    --location=COMPUTE_LOCATION \
    --enable-managed-prometheus \
    --monitoring=SYSTEM,CADVISOR,KUBELET

다음을 바꿉니다.

  • CLUSTER_NAME: 기존 클러스터의 이름입니다.
  • COMPUTE_LOCATION: 클러스터의 Compute Engine 위치입니다.

monitoring 플래그에 제공된 값 집합은 이전 설정을 재정의합니다.

Terraform

Terraform을 사용하여 cAdvisor/Kubelet 측정항목 수집을 구성하려면 google_container_cluster용 Terraform 레지스트리에서 monitoring_config 블록을 참조하세요. Terraform과 함께 Google Cloud를 사용하는 방법에 대한 일반적인 내용은 Google Cloud에서 Terraform을 참조하세요.

측정항목 형식

Cloud Monitoring에 기록되는 모든 Kubernetes cAdvisor/Kubelet 측정항목은 prometheus_target 리소스 유형을 사용합니다. 각 측정항목 이름에는 prometheus.googleapis.com/ 프리픽스가 있고 /gauge, /histogram, /counter와 같은 Prometheus 측정항목 유형을 나타내는 서픽스가 있습니다. 그렇지 않으면 각 측정항목 이름은 오픈소스 Kubernetes에 의해 노출된 측정항목 이름과 동일합니다.

Cloud Monitoring에서 내보내기

cAdvisor/Kubelet 측정항목은 Cloud Monitoring에서 Cloud Monitoring API를 사용하여 내보낼 수 있습니다. 모든 cAdvisor/Kubelet 측정항목은 Google Cloud Managed Service for Prometheus를 사용하여 수집되므로 cAdvisor/Kubelet 측정항목은 Prometheus 쿼리 언어(PromQL)를 사용하여 쿼리할 수 있습니다. 모니터링 쿼리 언어(MQL)를 사용하여 쿼리할 수도 있습니다.

측정항목 쿼리

cAdvisor/Kubelet 측정항목을 쿼리할 때 사용하는 이름은 PromQL을 사용하는지 또는 MQL과 같은 Cloud Monitoring 기반 기능을 사용하는지 또는 측정항목 탐색기 메뉴 기반 인터페이스를 사용하는지에 따라 다릅니다.

다음 cAdvisor/Kubelet 측정항목 표는 각 측정항목 이름의 두 가지 버전을 보여줍니다.

  • PromQL 측정항목 이름: Google Cloud 콘솔의 Cloud Monitoring 페이지 또는 Cloud Monitoring API의 PromQL 필드에서 PromQL을 사용하는 경우 PromQL 측정항목 이름을 사용합니다.
  • Cloud Monitoring 측정항목 이름: 다른 Cloud Monitoring 기능을 사용하는 경우 아래 테이블에서 Cloud Monitoring 측정항목 이름을 사용합니다. 이 이름에는 테이블의 항목에서 생략된 prometheus.googleapis.com/ 프리픽스를 붙여야 합니다.

cAdvisor 측정항목

이 테이블의 Cloud Monitoring 측정항목 이름에는 prometheus.googleapis.com/ 프리픽스를 붙여야 합니다. 테이블의 항목에서는 이 프리픽스가 생략되었습니다.

PromQL 측정항목 이름
Cloud Monitoring 측정항목 이름
종류, 유형, 단위
모니터링 리소스
필수 GKE 버전
설명
라벨
container_cpu_cfs_periods_total
container_cpu_cfs_periods_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
경과된 시행 기간 간격 수입니다. 30초마다 샘플링됩니다.

cpu
container_cpu_cfs_throttled_periods_total
container_cpu_cfs_throttled_periods_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
제한된 기간 간격 수입니다. 30초마다 샘플링됩니다.

cpu
container_cpu_usage_seconds_total
container_cpu_usage_seconds_total/counter
CUMULATIVEDOUBLEs
prometheus_target
1.29.3-gke.1093000
소비한 CPU 누적 시간입니다. 30초마다 샘플링됩니다.

cpu
container_fs_limit_bytes
container_fs_limit_bytes/gauge
GAUGEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
이 파일 시스템의 컨테이너가 소비할 수 있는 바이트 수입니다. 30초마다 샘플링됩니다.

disk
container_fs_read_seconds_total
container_fs_read_seconds_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
완료된 읽기의 누적 수입니다. 30초마다 샘플링됩니다.

diskIO
container_fs_reads_bytes_total
container_fs_reads_bytes_total/counter
CUMULATIVEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
읽은 바이트의 누적 수입니다. 30초마다 샘플링됩니다.

diskIO
container_fs_reads_total
container_fs_reads_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
완료된 읽기의 누적 수입니다. 30초마다 샘플링됩니다.

diskIO
container_fs_usage_bytes
container_fs_usage_bytes/gauge
GAUGEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
이 파일 시스템의 컨테이너가 소비한 바이트 수입니다. 30초마다 샘플링됩니다.

disk
container_fs_write_seconds_total
container_fs_write_seconds_total/counter
CUMULATIVEDOUBLEs
prometheus_target
1.29.3-gke.1093000
쓰기에 소요된 누적 시간(초)입니다. 30초마다 샘플링됩니다.

diskIO
container_fs_writes_bytes_total
container_fs_writes_bytes_total/counter
CUMULATIVEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
작성한 바이트의 누적 수입니다. 30초마다 샘플링됩니다.

diskIO
container_fs_writes_total
container_fs_writes_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
완료된 쓰기의 누적 수입니다. 30초마다 샘플링됩니다.

diskIO
container_memory_rss
container_memory_rss/gauge
GAUGEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
RSS의 크기입니다. 30초마다 샘플링됩니다.

memory
container_memory_working_set_bytes
container_memory_working_set_bytes/gauge
GAUGEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
현재 작업 세트입니다. 30초마다 샘플링됩니다.

memory
container_network_receive_bytes_total
container_network_receive_bytes_total/counter
CUMULATIVEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
수신된 바이트의 누적 수입니다. 30초마다 샘플링됩니다.

network
container_network_receive_packets_dropped_total
container_network_receive_packets_dropped_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
수신 중에 삭제된 패킷의 누적 수입니다. 30초마다 샘플링됩니다.

network
container_network_receive_packets_total
container_network_receive_packets_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
수신된 패킷의 누적 수입니다. 30초마다 샘플링됩니다.

network
container_network_transmit_bytes_total
container_network_transmit_bytes_total/counter
CUMULATIVEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
전송된 바이트의 누적 수입니다. 30초마다 샘플링됩니다.

network
container_network_transmit_packets_dropped_total
container_network_transmit_packets_dropped_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
전송 중 삭제된 패킷의 누적 수입니다. 30초마다 샘플링됩니다.

network
container_network_transmit_packets_total
container_network_transmit_packets_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
전송된 패킷의 누적 수입니다. 30초마다 샘플링됩니다.

network

Kubelet 측정항목

이 테이블의 Cloud Monitoring 측정항목 이름에는 prometheus.googleapis.com/ 프리픽스를 붙여야 합니다. 테이블의 항목에서는 이 프리픽스가 생략되었습니다.

PromQL 측정항목 이름
Cloud Monitoring 측정항목 이름
종류, 유형, 단위
모니터링 리소스
필수 GKE 버전
설명
라벨
kubelet_certificate_manager_server_ttl_seconds
kubelet_certificate_manager_server_ttl_seconds/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Kubelet 서빙 인증서의 가장 짧은 TTL(수명) 게이지입니다. 값은 인증서가 만료될 때까지 초 단위입니다(이미 만료된 경우 음수). 서빙 인증서가 유효하지 않거나 사용되지 않은 경우 값은 +INF입니다. 30초마다 샘플링됩니다.

 
kubelet_node_name
kubelet_node_name/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
노드 이름입니다. 개수는 항상 1입니다. 30초마다 샘플링됩니다.

node
kubelet_pleg_relist_duration_seconds
kubelet_pleg_relist_duration_seconds/histogram
CUMULATIVEDISTRIBUTIONs
prometheus_target
1.29.3-gke.1093000
PLEG에서 포드를 다시 나열하는 시간(초)입니다. 30초마다 샘플링됩니다.

 
kubelet_pod_worker_duration_seconds
kubelet_pod_worker_duration_seconds/histogram
CUMULATIVEDISTRIBUTIONs
prometheus_target
1.29.3-gke.1093000
단일 포드를 동기화하는 시간(초)입니다. 작업 유형별로 분류(만들기, 업데이트, 동기화)됩니다. 30초마다 샘플링됩니다.

operation_type
kubelet_running_containers
kubelet_running_containers/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
현재 실행 중인 컨테이너 수입니다. 30초마다 샘플링됩니다.

container_state
kubelet_running_pods
kubelet_running_pods/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
실행 중인 포드 샌드박스가 있는 포드 수입니다. 30초마다 샘플링됩니다.

 
kubelet_runtime_operations_total
kubelet_runtime_operations_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
작업 유형별 런타임 작업의 누적 수입니다. 30초마다 샘플링됩니다.

operation_type
kubelet_volume_stats_available_bytes
kubelet_volume_stats_available_bytes/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
볼륨의 사용 가능한 바이트 수입니다. 30초마다 샘플링됩니다.

namespace
persistentvolumeclaim
kubelet_volume_stats_capacity_bytes
kubelet_volume_stats_capacity_bytes/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
볼륨 용량(바이트)입니다. 30초마다 샘플링됩니다.

namespace
persistentvolumeclaim
kubelet_volume_stats_inodes
kubelet_volume_stats_inodes/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
볼륨의 최대 아이노드 수입니다. 30초마다 샘플링됩니다.

namespace
persistentvolumeclaim
kubelet_volume_stats_inodes_free
kubelet_volume_stats_inodes_free/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
볼륨의 여유 아이노드 수입니다. 30초마다 샘플링됩니다.

namespace
persistentvolumeclaim
kubelet_volume_stats_inodes_used
kubelet_volume_stats_inodes_used/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
볼륨에서 사용된 아이노드의 수입니다. 30초마다 샘플링됩니다.

namespace
persistentvolumeclaim
kubelet_volume_stats_used_bytes
kubelet_volume_stats_used_bytes/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
볼륨에서 사용된 바이트 수입니다. 30초마다 샘플링됩니다.

namespace
persistentvolumeclaim