이 페이지에서는 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 측정항목을 구성하려면 다음을 수행합니다.
-
Google Cloud 콘솔에서 Kubernetes 클러스터 페이지로 이동합니다.
검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Kubernetes Engine인 결과를 선택합니다.
클러스터 이름을 클릭합니다.
Cloud Monitoring이라는 라벨이 지정된 특성 행에서 수정 아이콘을 클릭합니다.
Cloud Monitoring 수정 대화상자가 나타나면 Cloud Monitoring 사용 설정이 선택되어 있는지 확인합니다.
구성요소 드롭다운 메뉴에서 측정항목을 수집할 cAdvisor/Kubelet 구성요소를 선택합니다.
- cAdvisor
- Kubelet
확인을 클릭합니다.
변경사항 저장을 클릭합니다.
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 버전 |
Description Labels |
container_cpu_cfs_periods_total container_cpu_cfs_periods_total/counter
|
|
CUMULATIVE , DOUBLE , 1
prometheus_target 1.29.3-gke.1093000 |
경과된 시행 기간 간격 수입니다. 30초마다 샘플링됩니다.cpu
|
container_cpu_cfs_throttled_periods_total container_cpu_cfs_throttled_periods_total/counter
|
|
CUMULATIVE , DOUBLE , 1
prometheus_target 1.29.3-gke.1093000 |
제한된 기간 간격 수입니다. 30초마다 샘플링됩니다.cpu
|
container_cpu_usage_seconds_total container_cpu_usage_seconds_total/counter
|
|
CUMULATIVE , DOUBLE , s
prometheus_target 1.29.3-gke.1093000 |
소비한 CPU 누적 시간입니다. 30초마다 샘플링됩니다.cpu
|
container_fs_limit_bytes container_fs_limit_bytes/gauge
|
|
GAUGE , DOUBLE , By
prometheus_target 1.29.3-gke.1093000 |
이 파일 시스템의 컨테이너가 소비할 수 있는 바이트 수입니다. 30초마다 샘플링됩니다.disk
|
container_fs_read_seconds_total container_fs_read_seconds_total/counter
|
|
CUMULATIVE , DOUBLE , 1
prometheus_target 1.29.3-gke.1093000 |
완료된 읽기의 누적 수입니다. 30초마다 샘플링됩니다.diskIO
|
container_fs_reads_bytes_total container_fs_reads_bytes_total/counter
|
|
CUMULATIVE , DOUBLE , By
prometheus_target 1.29.3-gke.1093000 |
읽은 바이트의 누적 수입니다. 30초마다 샘플링됩니다.diskIO
|
container_fs_reads_total container_fs_reads_total/counter
|
|
CUMULATIVE , DOUBLE , 1
prometheus_target 1.29.3-gke.1093000 |
완료된 읽기의 누적 수입니다. 30초마다 샘플링됩니다.diskIO
|
container_fs_usage_bytes container_fs_usage_bytes/gauge
|
|
GAUGE , DOUBLE , By
prometheus_target 1.29.3-gke.1093000 |
이 파일 시스템의 컨테이너가 소비한 바이트 수입니다. 30초마다 샘플링됩니다.disk
|
container_fs_write_seconds_total container_fs_write_seconds_total/counter
|
|
CUMULATIVE , DOUBLE , s
prometheus_target 1.29.3-gke.1093000 |
쓰기에 소요된 누적 시간(초)입니다. 30초마다 샘플링됩니다.diskIO
|
container_fs_writes_bytes_total container_fs_writes_bytes_total/counter
|
|
CUMULATIVE , DOUBLE , By
prometheus_target 1.29.3-gke.1093000 |
작성한 바이트의 누적 수입니다. 30초마다 샘플링됩니다.diskIO
|
container_fs_writes_total container_fs_writes_total/counter
|
|
CUMULATIVE , DOUBLE , 1
prometheus_target 1.29.3-gke.1093000 |
완료된 쓰기의 누적 수입니다. 30초마다 샘플링됩니다.diskIO
|
container_memory_rss container_memory_rss/gauge
|
|
GAUGE , DOUBLE , By
prometheus_target 1.29.3-gke.1093000 |
RSS의 크기입니다. 30초마다 샘플링됩니다.memory
|
container_memory_working_set_bytes container_memory_working_set_bytes/gauge
|
|
GAUGE , DOUBLE , By
prometheus_target 1.29.3-gke.1093000 |
현재 작업 세트입니다. 30초마다 샘플링됩니다.memory
|
container_network_receive_bytes_total container_network_receive_bytes_total/counter
|
|
CUMULATIVE , DOUBLE , By
prometheus_target 1.29.3-gke.1093000 |
수신된 바이트의 누적 수입니다. 30초마다 샘플링됩니다.network
|
container_network_receive_packets_dropped_total container_network_receive_packets_dropped_total/counter
|
|
CUMULATIVE , DOUBLE , 1
prometheus_target 1.29.3-gke.1093000 |
수신 중에 삭제된 패킷의 누적 수입니다.
30초마다 샘플링됩니다.network
|
container_network_receive_packets_total container_network_receive_packets_total/counter
|
|
CUMULATIVE , DOUBLE , 1
prometheus_target 1.29.3-gke.1093000 |
수신된 패킷의 누적 수입니다. 30초마다 샘플링됩니다.network
|
container_network_transmit_bytes_total container_network_transmit_bytes_total/counter
|
|
CUMULATIVE , DOUBLE , By
prometheus_target 1.29.3-gke.1093000 |
전송된 바이트의 누적 수입니다. 30초마다 샘플링됩니다.network
|
container_network_transmit_packets_dropped_total container_network_transmit_packets_dropped_total/counter
|
|
CUMULATIVE , DOUBLE , 1
prometheus_target 1.29.3-gke.1093000 |
전송 중 삭제된 패킷의 누적 수입니다.
30초마다 샘플링됩니다.network
|
container_network_transmit_packets_total container_network_transmit_packets_total/counter
|
|
CUMULATIVE , DOUBLE , 1
prometheus_target 1.29.3-gke.1093000 |
전송된 패킷의 누적 수입니다. 30초마다 샘플링됩니다.network
|
Kubelet 측정항목
이 테이블의 Cloud Monitoring 측정항목 이름에는 prometheus.googleapis.com/
프리픽스를 붙여야 합니다. 테이블의 항목에서는 이 프리픽스가 생략되었습니다.
PromQL 측정항목 이름 Cloud Monitoring 측정항목 이름 |
|
---|---|
종류, 유형, 단위
모니터링 리소스 필수 GKE 버전 |
Description Labels |
kubelet_certificate_manager_server_ttl_seconds kubelet_certificate_manager_server_ttl_seconds/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.29.3-gke.1093000 |
Kubelet 서빙 인증서의 가장 짧은 TTL(수명) 게이지입니다. 값은 인증서가 만료될 때까지 초 단위입니다(이미 만료된 경우 음수). 서빙 인증서가 유효하지 않거나 사용되지 않은 경우 값은 +INF입니다. 30초마다 샘플링됩니다. |
kubelet_node_name kubelet_node_name/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.29.3-gke.1093000 |
노드 이름입니다. 개수는 항상 1입니다. 30초마다 샘플링됩니다.node
|
kubelet_pleg_relist_duration_seconds kubelet_pleg_relist_duration_seconds/histogram
|
|
CUMULATIVE , DISTRIBUTION , s
prometheus_target 1.29.3-gke.1093000 |
PLEG에서 포드를 다시 나열하는 시간(초)입니다. 30초마다 샘플링됩니다. |
kubelet_pod_worker_duration_seconds kubelet_pod_worker_duration_seconds/histogram
|
|
CUMULATIVE , DISTRIBUTION , s
prometheus_target 1.29.3-gke.1093000 |
단일 포드를 동기화하는 시간(초)입니다. 작업 유형별로 분류(만들기, 업데이트, 동기화)됩니다. 30초마다 샘플링됩니다.operation_type
|
kubelet_running_containers kubelet_running_containers/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.29.3-gke.1093000 |
현재 실행 중인 컨테이너 수입니다. 30초마다 샘플링됩니다.container_state
|
kubelet_running_pods kubelet_running_pods/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.29.3-gke.1093000 |
실행 중인 포드 샌드박스가 있는 포드 수입니다. 30초마다 샘플링됩니다. |
kubelet_runtime_operations_total kubelet_runtime_operations_total/counter
|
|
CUMULATIVE , DOUBLE , 1
prometheus_target 1.29.3-gke.1093000 |
작업 유형별 런타임 작업의 누적 수입니다.
30초마다 샘플링됩니다.operation_type
|
kubelet_volume_stats_available_bytes kubelet_volume_stats_available_bytes/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.29.3-gke.1093000 |
볼륨의 사용 가능한 바이트 수입니다. 30초마다 샘플링됩니다.namespace
persistentvolumeclaim
|
kubelet_volume_stats_capacity_bytes kubelet_volume_stats_capacity_bytes/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.29.3-gke.1093000 |
볼륨 용량(바이트)입니다. 30초마다 샘플링됩니다.namespace
persistentvolumeclaim
|
kubelet_volume_stats_inodes kubelet_volume_stats_inodes/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.29.3-gke.1093000 |
볼륨의 최대 아이노드 수입니다. 30초마다 샘플링됩니다.namespace
persistentvolumeclaim
|
kubelet_volume_stats_inodes_free kubelet_volume_stats_inodes_free/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.29.3-gke.1093000 |
볼륨의 여유 아이노드 수입니다. 30초마다 샘플링됩니다.namespace
persistentvolumeclaim
|
kubelet_volume_stats_inodes_used kubelet_volume_stats_inodes_used/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.29.3-gke.1093000 |
볼륨에서 사용된 아이노드의 수입니다. 30초마다 샘플링됩니다.namespace
persistentvolumeclaim
|
kubelet_volume_stats_used_bytes kubelet_volume_stats_used_bytes/gauge
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.29.3-gke.1093000 |
볼륨에서 사용된 바이트 수입니다. 30초마다 샘플링됩니다.namespace
persistentvolumeclaim
|