측정항목 수집 구성


이 문서에서는 Cloud Monitoring으로 측정항목을 전송하도록 Google Kubernetes Engine(GKE)을 구성하는 방법을 설명합니다. Cloud Monitoring에서 측정항목은 커스텀 대시보드를 채우거나 알림을 생성하거나 서비스 수준 목표를 만들 수 있습니다. 또 Cloud Monitoring API를 사용하여 타사 모니터링 서비스에서 측정항목을 가져올 수도 있습니다.

GKE는 몇 가지 측정항목 소스를 제공합니다.

  • 시스템 측정항목: CPU, 메모리, 스토리지와 같은 하위 수준 리소스를 설명하는 필수 시스템 구성요소의 측정항목입니다.
  • Google Cloud Managed Service for Prometheus를 사용하면 수동으로 대규모 Prometheus 관리 및 운영을 수행할 필요 없이 Prometheus를 사용하여 워크로드를 모니터링하고 알림을 표시할 수 있습니다.
  • 관측 가능성 측정항목의 패키지:

시스템 측정항목

클러스터가 생성되면 GKE는 시스템 구성요소에서 내보낸 특정 측정항목을 수집합니다.

GKE 클러스터에서 Cloud Monitoring으로 측정항목을 전송할지 여부를 선택할 수 있습니다. Cloud Monitoring으로 측정항목 전송을 선택한 경우 시스템 측정항목을 전송해야 합니다.

모든 GKE 시스템 측정항목은 프리픽스 kubernetes.io가 있는 Cloud Monitoring에 수집됩니다.

가격 책정

Cloud Monitoring은 GKE 시스템 측정항목 수집에 대해서는 요금을 부과하지 않습니다. 자세한 내용은 Cloud Monitoring 가격 책정을 참조하세요.

시스템 측정항목 수집 구성

시스템 측정항목 수집을 사용 설정하려면 SYSTEM 값을 gcloud container clusters create 또는 gcloud container clusters update 명령어의 --monitoring 플래그로 전달합니다.

시스템 측정항목 수집을 사용 중지하려면 --monitoring 플래그에 NONE 값을 사용합니다. 시스템 측정항목 수집이 사용 중지된 경우 관측 가능성 측정항목을 볼 때 클러스터의 CPU 사용량, 메모리 사용량, 디스크 사용량과 같은 기본 정보를 사용할 수 없습니다.

참고: GKE Autopilot 클러스터의 경우 시스템 측정항목 수집을 중지할 수 없습니다.

GKE와 Cloud Monitoring 통합에 대한 자세한 내용은 GKE 관측 가능성을 참조하세요.

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

시스템 측정항목 목록

시스템 측정항목에는 Kubernetes에 중요한 핵심 시스템 구성요소의 측정항목이 포함됩니다. 측정항목 목록은 GKE 시스템 측정항목을 참조하세요.

클러스터에 Cloud Monitoring을 사용 설정하면 시스템 모니터링(--monitoring=SYSTEM)을 사용 중지할 수 없습니다.

GKE Enterprise에서 기본적으로 사용 설정되는 측정항목

다음 표에서 체크표시()는 GKE Enterprise가 사용 설정된 프로젝트에서 새 클러스터를 만들고 등록할 때 기본적으로 사용 설정되는 측정항목을 나타냅니다.

측정항목 이름 Autopilot 표준
시스템
API 서버
스케줄러
컨트롤러 관리자
영구 볼륨(스토리지)
포드
배포
StatefulState
DaemonSet
HorizonalPodAutoscaler
cAdvisor
Kubelet
NVIDIA Data Center GPU Manager(DCGM) 측정항목

GKE Enterprise가 사용 설정된 프로젝트에 등록된 모든 클러스터는 추가 비용 없이 컨트롤 플레인 측정항목, Kubernetes 상태 측정항목, cAdvisor/kubelet 측정항목을 사용할 수 있습니다. 그렇지 않은 경우에는 이러한 측정항목에 Cloud Monitoring 요금이 부과됩니다.

시스템 측정항목 문제 해결

Cloud Monitoring에서 시스템 측정항목을 예상한 대로 사용할 수 없는 경우 시스템 측정항목 문제 해결을 참조하세요.

패키지: 제어 영역 측정항목

GKE 클러스터를 구성하여 Kubernetes API 서버, 스케줄러, 컨트롤러 관리자에서 내보낸 특정 측정항목을 Cloud Monitoring으로 전송할 수 있습니다.

자세한 내용은 컨트롤 플레인 측정항목 수집 및 보기를 참조하세요.

패키지: Kubernetes 상태 측정항목

Prometheus 형식의 선별된 Kubernetes 상태 측정항목 집합을 Cloud Monitoring으로 전송하도록 GKE 클러스터를 구성할 수 있습니다. 이 Kubernetes 상태 측정항목 패키지에는 포드, 배포, StatefulSet, DaemonSet, HorizontalPodAutoscaler 리소스, 영구 볼륨, 영구 볼륨 클레임의 측정항목이 포함됩니다.

자세한 내용은 Kubernetes 상태 측정항목 수집 및 보기를 참조하세요.

패키지: cAdvisor/Kubelet 측정항목

Prometheus 형식의 선별된 cAdvisor/Kubelet 측정항목 집합을 Cloud Monitoring으로 전송하도록 GKE 클러스터를 구성할 수 있습니다. 선별된 측정항목 집합은 기본적으로 모든 Kubernetes 배포에 내장된 대규모 cAdvisor/Kubelet 측정항목 집합의 하위 집합입니다. 선별된 cAdvisor/Kubelet은 가장 유용한 측정항목을 제공하여 수집량 및 관련 비용을 줄이도록 설계되었습니다.

자세한 내용은 cAdvisor/Kubelet 측정항목 수집 및 보기를 참조하세요.

패키지: NVIDIA Data Center GPU Manager(DCGM) 측정항목

GKE가 NVIDIA Data Center GPU Manager(DCGM) 측정항목을 Cloud Monitoring으로 전송하도록 구성하여 GPU 사용률, 성능, 상태를 모니터링할 수 있습니다.

자세한 내용은 NVIDIA Data Center GPU Manager(DCGM) 측정항목 수집 및 보기를 참조하세요.

측정항목 패키지 사용 중지

클러스터에서 측정항목 패키지 사용을 중지할 수 있습니다. 비용을 줄이기 위해 특정 패키지를 사용 중지하거나 Google Cloud Managed Service for Prometheus 및 내보내기 도구와 같은 측정항목을 수집하기 위해 다른 메커니즘을 사용하는 경우 특정 패키지를 사용 중지해야 할 수 있습니다.

콘솔

클러스터의 세부정보 탭에서 측정항목 수집을 사용 중지하려면 다음을 수행합니다.

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

    Kubernetes 클러스터로 이동

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

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

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

  4. 구성요소 드롭다운 메뉴에서 사용 중지하려는 측정항목 구성요소를 선택 취소합니다.

  5. 확인을 클릭합니다.

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

gcloud

  1. Google Cloud SDK 및 Google Cloud CLI가 설치된 터미널 창을 엽니다. 이를 위한 한 가지 방법은 Cloud Shell을 사용하는 것입니다.

  2. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  3. gcloud container clusters update 명령어를 호출하고 업데이트된 값 집합을 --monitoring 플래그에 전달합니다. --monitoring 플래그에 제공된 값 집합은 이전 설정을 재정의합니다.

    예를 들어 시스템 측정항목을 제외한 모든 측정항목 수집을 해제하려면 다음 명령어를 실행합니다.

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

    이 명령어는 이전에 구성된 측정항목 패키지의 수집을 사용 중지합니다.

Terraform

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

Monitoring 청구서 파악

Cloud Monitoring을 사용하여 샘플을 가장 많이 작성하는 제어 영역 또는 Kubernetes 상태 측정항목을 식별할 수 있습니다. 이러한 측정항목은 비용에 가장 큰 영향을 미칩니다. 가장 비용이 많이 드는 측정항목을 식별한 후에는 스크레이핑 구성을 수정하여 이러한 측정항목을 적절하게 필터링할 수 있습니다.

Cloud Monitoring 측정항목 관리 페이지에서는 관측 가능성에 영향을 주지 않고 청구 가능 측정항목에 지출하는 금액을 제어할 수 있는 정보를 제공합니다. 측정항목 관리 페이지에서는 다음 정보를 보고합니다.

  • 측정항목 도메인 및 개별 측정항목의 바이트 기반 및 샘플 기반 청구에 대한 수집량
  • 측정항목의 라벨 및 카디널리티에 대한 데이터
  • 각 측정항목 읽기 수입니다.
  • 알림 정책 및 커스텀 대시보드의 측정항목 사용
  • 측정항목 쓰기 오류의 비율

또한 측정항목 관리를 사용하면 불필요한 측정항목을 제외하여 수집 비용을 절감할 수 있습니다.

측정항목 관리 페이지를 보려면 다음을 수행합니다.

  1. Google Cloud 콘솔에서  측정항목 관리 페이지로 이동합니다.

    측정항목 관리로 이동

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

  2. 툴바에서 기간을 선택합니다. 기본적으로 측정항목 관리 페이지에는 이전 1일 동안 수집된 측정항목에 대한 정보가 표시됩니다.

측정항목 관리 페이지에 대한 자세한 내용은 측정항목 사용량 보기 및 관리를 참조하세요.

수집되는 샘플 수가 가장 많은 제어 영역 또는 Kubernetes 상태 측정항목을 식별하려면 다음을 수행합니다.

  1. Google Cloud 콘솔에서  측정항목 관리 페이지로 이동합니다.

    측정항목 관리로 이동

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

  2. 수집된 청구 가능한 샘플 스코어카드에서 차트 보기를 클릭합니다.

  3. 네임스페이스 볼륨 수집 차트를 찾은 다음  차트 옵션 더보기를 클릭합니다.

  4. 측정항목 필드에서 다음 리소스와 측정항목이 선택되어 있는지 확인합니다.
    Metric Ingestion AttributionSamples written by attribution id.

  5. 필터 페이지에서 다음을 수행합니다.

    1. 라벨 필드에서 값이 attribution_dimension인지 확인합니다.

    2. 비교 필드에서 값이 = (equals)인지 확인합니다.

    3. 필드에서 cluster를 선택합니다.

  6. 그룹화 기준 설정을 선택 해제합니다.

  7. 원하는 경우 특정 측정항목만 필터링합니다. 예를 들어 제어 영역 API 서버 측정항목 모두 측정항목 이름에 'apiserver'를 포함하고 kube 상태 포드 측정항목에는 모두 측정항목 이름에 'kube_pod'를 포함하므로 이러한 문자열이 포함된 측정항목으로 필터링할 수 있습니다.

    • 필터 추가를 클릭합니다.

    • 라벨 필드에서 metric_type을 선택합니다.

    • 비교 필드에서 =~ (equals regex)를 선택합니다.

    • 필드에 .*apiserver.* 또는 .*kube_pod.*를 입력합니다.

  8. 원하는 경우 GKE 리전 또는 프로젝트에서 수집된 샘플 수를 그룹화합니다.

    • 그룹화 기준을 클릭합니다.

    • metric_type이 선택되어 있는지 확인합니다.

    • GKE 리전별로 그룹화하려면 위치를 선택합니다.

    • 프로젝트별로 그룹화하려면 project_id를 선택합니다.

    • 확인을 클릭합니다.

  9. 필요한 경우 GKE 클러스터 이름으로 수집된 샘플 수를 그룹화합니다.

    • 그룹화 기준을 클릭합니다.

    • GKE 클러스터 이름별로 그룹화하려면 attribution_dimensionattribution_id가 모두 선택되어 있는지 확인합니다.

    • 확인을 클릭합니다.

  10. 각 측정항목의 수집량을 보려면 차트 테이블 모두 라벨이 지정된 전환 버튼에서 둘 다를 선택합니다. 테이블에는 열에서 각 측정항목에 대해 수집된 볼륨이 표시됩니다.

    열 헤더를 두 번 클릭하여 수집 볼륨을 내림차순으로 측정항목을 정렬합니다.

이 단계는 Cloud Monitoring에 수집된 샘플 비율이 가장 높은 측정항목을 보여줍니다. 관측 가능성 패키지의 측정항목은 수집된 샘플 수에 따라 요금이 청구되므로 수집되는 샘플 속도가 가장 빠른 측정항목에 주의해야 합니다.

기타 측정항목

이 문서에 설명된 시스템 측정항목 및 측정항목 패키지 외에 Istio 측정항목도 GKE 클러스터에 사용할 수 있습니다. 가격 정보는 Cloud Monitoring 가격책정을 참조하세요.

사용 가능한 측정항목

다음 테이블에서는 createupdate 명령어의 --monitoring 플래그에 지원되는 값을 보여줍니다.

소스 --monitoring 수집된 측정항목
없음 NONE Cloud Monitoring으로 측정항목이 전송되지 않습니다. 클러스터에 측정항목 수집 에이전트가 설치되지 않습니다. 이 값은 Autopilot 클러스터에서 지원되지 않습니다.
시스템 SYSTEM Kubernetes에 필요한 필수 시스템 구성요소의 측정항목입니다. 측정항목 전체 목록은 Kubernetes 측정항목을 참조하세요.
API 서버 API_SERVER kube-apiserver의 측정항목입니다. 전체 측정항목 목록은 API 서버 측정항목을 참조하세요.
스케줄러 SCHEDULER kube-scheduler의 측정항목입니다. 전체 측정항목 목록은 스케줄러 측정항목을 참조하세요.
컨트롤러 관리자 CONTROLLER_MANAGER kube-controller-manager의 측정항목입니다. 전체 측정항목 목록은 컨트롤러 관리자 측정항목을 참조하세요.
영구 볼륨(스토리지) STORAGE kube-state-metrics의 스토리지 측정항목입니다. 영구 볼륨 및 영구 볼륨 클레임의 측정항목이 포함됩니다. 측정항목 전체 목록은 스토리지 측정항목을 참조하세요.
포드 POD kube-state-metrics의 포드 측정항목입니다. 측정항목 전체 목록은 포드 측정항목을 참조하세요.
배포 DEPLOYMENT kube-state-metrics의 배포 측정항목입니다. 측정항목 전체 목록은 배포 측정항목을 참조하세요.
StatefulSet STATEFULSET kube-state-metrics의 StatefulSet 측정항목입니다. 측정항목 전체 목록은 StatefulSet 측정항목을 참조하세요.
DaemonSet DAEMONSET kube-state-metrics의 DaemonSet 측정항목입니다. 측정항목 전체 목록은 DaemonSet 측정항목을 참조하세요.
HorizonalPodAutoscaler HPA kube-state-metrics의 HPA 측정항목입니다. HorizonalPodAutoscaler 측정항목의 전체 목록을 참조하세요.
cAdvisor CADVISOR cAdvisor/Kubelet 측정항목 패키지의 cAdvisor 측정항목. 측정항목 전체 목록은 cAdvisor 측정항목을 참조하세요.
Kubelet KUBELET cAdvisor/Kubelet의 Kubelet 측정항목 측정항목의 전체 목록은 Kubelet 측정항목을 참조하세요.
NVIDIA Data Center GPU Manager(DCGM) 측정항목 DCGM NVIDIA Data Center GPU Manager(DCGM)의 측정항목

또한 Google Cloud Managed Service for Prometheus를 사용해서 GKE 워크로드로 노출되는 Prometheus 스타일의 측정항목을 수집할 수 있습니다. 이렇게 하면 대규모 Prometheus 관리 및 운영을 수동으로 수행할 필요 없이 Prometheus를 사용해서 워크로드를 모니터링하고 알림을 표시할 수 있습니다.

다음 단계