지원되는 워크로드에 대해 자동 애플리케이션 모니터링을 사용 설정하여 Google Kubernetes Engine(GKE)에서 실행되는 모니터링 애플리케이션을 구성 및 유지보수하는 데 필요한 시간과 비용을 절약할 수 있습니다.
자동 애플리케이션 모니터링의 작동 방식
자동 애플리케이션 모니터링을 사용 설정하면 GKE가 지원되는 워크로드의 배포된 인스턴스를 감지하고 각 워크로드 인스턴스에 대해 PodMonitoring
리소스를 배포합니다.
자동 애플리케이션 모니터링은 또한 모니터링 애플리케이션에 즉시 사용 가능한 대시보드를 설치합니다. 이러한 측정항목은 Google Cloud Managed Service for Prometheus에서 수집됩니다.
지원되는 워크로드
자동 애플리케이션 모니터링은 다음 워크로드를 지원합니다.
- Apache Airflow
- Istio
- RabbitMQ
- AI 모델 서버:
AI 모델 서버의 측정항목 스크래핑 간격은 15초입니다. 비AI 워크로드의 경우 스크래핑 간격이 30초입니다.
수동으로 구성할 수 있는 다른 즉시 사용 가능한 관측 가능성 솔루션에 대한 자세한 내용은 Google Cloud Observability 문서에서 내보내기 도구 구성 소개를 참조하세요.
시작하기 전에
시작하기 전에 다음 태스크를 수행했는지 확인합니다.
- Google Kubernetes Engine API를 사용 설정합니다. Google Kubernetes Engine API 사용 설정
- 이 태스크에 Google Cloud CLI를 사용하려면 gcloud CLI를 설치한 후 초기화하세요. 이전에 gcloud CLI를 설치한 경우
gcloud components update
를 실행하여 최신 버전을 가져옵니다.
- Cloud Monitoring API를 사용 설정합니다.
자동 애플리케이션 모니터링 요구사항
자동 애플리케이션 모니터링을 사용 설정하려면 GKE 클러스터가 다음 요구사항을 충족해야 합니다.
- 클러스터에서 실행 중인 GKE 버전이 1.28 이상이어야 합니다.
- gcloud CLI 버전이 492.0.0 이상이어야 합니다.
- 클러스터에 Google Cloud Managed Service for Prometheus 관리형 수집이 사용 설정되어 있어야 합니다. Google Cloud Managed Service for Prometheus 관리형 수집은 새 클러스터에서 기본적으로 사용 설정됩니다.
자동 애플리케이션 모니터링 사용 설정
Google Cloud 콘솔, Google Cloud CLI, GKE API를 사용하여 신규 또는 기존 GKE 클러스터에 대해 자동 애플리케이션 모니터링을 사용 설정할 수 있습니다.
측정항목 스크래핑은 새 워크로드를 배포한 후 또는 클러스터에 자동 애플리케이션 모니터링을 사용 설정한 후 지원되는 워크로드를 시작하는 데 최대 10분이 걸립니다.
콘솔
새 클러스터에 자동 애플리케이션 모니터링을 사용 설정하려면 다음을 수행합니다.
Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.
만들기를 클릭하고 Standard 또는 Autopilot 섹션에서 구성을 클릭합니다.
Autopilot 모드 클러스터의 경우 고급 설정을 클릭합니다. 표준 모드 클러스터의 경우 기능을 클릭합니다.
작업 섹션에서 자동 애플리케이션 모니터링 사용 설정을 선택합니다.
만들기를 클릭합니다.
또한 클러스터 세부정보 탭의 작업 섹션에서 자동 애플리케이션 모니터링 사용 설정 필드를 업데이트하여 기존 클러스터에 대해 자동 애플리케이션 모니터링을 사용 설정할 수도 있습니다.
gcloud
새 클러스터에 자동 애플리케이션 모니터링을 사용 설정하려면 --auto-monitoring-scope=ALL
옵션을 사용합니다.
gcloud container clusters create-auto CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--auto-monitoring-scope=ALL
다음을 바꿉니다.
CLUSTER_NAME
: 새 클러스터의 이름입니다.COMPUTE_LOCATION
: 클러스터의 Compute Engine 위치입니다.
또한 gcloud container clusters update
명령어를 사용하여 기존 클러스터를 업데이트할 수 있습니다.
API
새 클러스터에 자동 애플리케이션 모니터링을 사용 설정하려면 clusters.create
메서드로 POST
요청을 보냅니다.
POST https://container.googleapis.com/v1/projects/PROJECT_ID/locations/COMPUTE_LOCATION/clusters
{
"cluster": {
"name": "CLUSTER_NAME",
"initialNodeCount": 1,
"monitoringConfig": {
"managedPrometheusConfig": {
"enabled": true,
"autoMonitoringConfig": {
"scope": "ALL"
}
}
}
}
}
다음을 바꿉니다.
PROJECT_ID
: Google Cloud 프로젝트 ID입니다.CLUSTER_NAME
: 새 클러스터의 이름입니다.COMPUTE_LOCATION
: 클러스터의 Compute Engine 위치입니다.
자동 애플리케이션 모니터링이 사용 설정되었는지 확인
Google Cloud 콘솔, gcloud CLI, GKE API를 사용하여 클러스터에 자동 애플리케이션 모니터링이 사용 설정 또는 사용 중지되었는지 확인할 수 있습니다.
콘솔
다음 단계를 따르세요.
Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.
클러스터 목록에서 클러스터 이름을 클릭합니다.
기능 섹션에서 자동 애플리케이션 모니터링 필드는 자동 애플리케이션 모니터링이 사용 설정 또는 사용 중지되었는지를 나타냅니다.
gcloud
클러스터를 설명합니다.
gcloud container clusters describe CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--format='value(monitoringConfig.managedPrometheusConfig.autoMonitoringConfig.scope)'
다음을 바꿉니다.
CLUSTER_NAME
: 클러스터의 이름입니다.COMPUTE_LOCATION
: 클러스터의 Compute Engine 위치입니다.
출력은 다음과 비슷합니다.
autoMonitoringConfig.scope: ALL
출력에서 autoMonitoringConfig.scope
필드 값이 ALL
이면 자동 애플리케이션 모니터링이 사용 설정된 것입니다. 그렇지 않으면 자동 애플리케이션 모니터링이 사용 중지됩니다.
API
clusters.get
메서드에 GET
요청을 보냅니다.
GET https://container.googleapis.com/v1/projects/PROJECT_ID/locations/COMPUTE_LOCATION/clusters/CLUSTER_NAME
다음을 바꿉니다.
PROJECT_ID
: Google Cloud 프로젝트 ID입니다.CLUSTER_NAME
: 클러스터의 이름입니다.COMPUTE_LOCATION
: 클러스터의 Compute Engine 위치입니다.
출력은 다음과 비슷합니다.
autoMonitoringConfig.scope: ALL
출력에서 autoMonitoringConfig.scope
필드 값이 ALL
이면 자동 애플리케이션 모니터링이 사용 설정된 것입니다. 그렇지 않으면 자동 애플리케이션 모니터링이 사용 중지됩니다.
대시보드 보기
자동 애플리케이션 모니터링을 사용 설정하면 GKE가 클러스터에 배포되는 지원되는 워크로드의 모니터링 애플리케이션에 즉시 사용 가능한 대시보드를 설치합니다. 클러스터에서 실행되지 않은 지원되는 워크로드에 대해서는 대시보드가 표시되지 않습니다.
Google Kubernetes Engine 페이지에서 자동으로 모니터링되는 워크로드의 원격 분석이 포함된 대시보드를 보려면 다음을 수행합니다.
Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.
자동으로 모니터링되는 워크로드의 대시보드를 보려는 클러스터 이름을 클릭합니다.
모니터링 가능성 탭을 클릭합니다. 통합 섹션에 클러스터에서 실행 중인 지원되는 워크로드에 대해 구성된 대시보드가 표시됩니다.
Cloud Monitoring 페이지에서 자동으로 모니터링되는 워크로드의 원격 분석이 포함된 대시보드를 보려면 다음을 수행합니다.
대시보드 페이지로 이동합니다.
대시보드 목록 탭을 클릭합니다.
통합 카테고리를 선택합니다.
대시보드의 이름을 클릭합니다(예: RabbitMQ Prometheus 개요).
자동 애플리케이션 모니터링 사용 중지
클러스터에서 자동 애플리케이션 모니터링을 사용 중지하면 GKE가 만든 PodMonitoring
리소스가 그대로 유지되고 GKE는 계속해서 기존 지원되는 워크로드를 모니터링합니다. GKE는 사용자가 클러스터에 배포하는 지원되는 워크로드의 새 인스턴스 모니터링을 자동으로 중지합니다. 기존 지원되는 워크로드 모니터링을 중지하려면 GKE에서 생성된 PodMonitoring
리소스를 삭제해야 합니다. 클러스터에 대해 자동 애플리케이션 모니터링을 다시 사용 설정하면 GKE가 이전에 생성된 PodMonitoring
리소스를 감지하고 조정합니다.
Google Cloud 콘솔, gcloud CLI, GKE API를 사용하여 클러스터의 자동 애플리케이션 모니터링을 사용 중지할 수 있습니다.
콘솔
Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.
클러스터 이름을 클릭합니다.
기능 목록에서 자동 애플리케이션 모니터링 필드를 찾습니다.
edit수정을 클릭합니다.
자동 애플리케이션 모니터링 사용 설정을 선택 해제합니다.
저장을 클릭합니다.
gcloud
--auto-monitoring-scope=NONE
옵션을 사용하여 클러스터를 업데이트합니다.
gcloud container clusters update CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--auto-monitoring-scope=NONE
다음을 바꿉니다.
CLUSTER_NAME
: 클러스터의 이름입니다.COMPUTE_LOCATION
: 클러스터의 Compute Engine 위치입니다.
API
clusters.update
메서드에 PUT
요청을 보냅니다.
PUT https://container.googleapis.com/v1/projects/PROJECT_ID/locations/COMPUTE_LOCATION/clusters/CLUSTER_NAME
{
"update": {
"desiredMonitoringConfig": {
"managedPrometheusConfig": {
"autoMonitoringConfig": {
"scope": "NONE"
}
}
}
}
}
다음을 바꿉니다.
PROJECT_ID
: Google Cloud 프로젝트 ID입니다.CLUSTER_NAME
: 클러스터의 이름입니다.COMPUTE_LOCATION
: 클러스터의 Compute Engine 위치입니다.
지원되는 워크로드의 자동 모니터링 맞춤설정
지원되는 워크로드의 개별 인스턴스에 대해 모니터링 구성을 맞춤설정하거나 지원되는 워크로드의 개별 인스턴스 모니터링을 선택 해제할 수 있습니다.
다른 워크로드의 자동 애플리케이션 모니터링에 영향을 주지 않으면서 지원되는 워크로드의 배포된 인스턴스에 대해 PodMonitoring
리소스를 맞춤설정하기 위해서는 자동 애플리케이션 모니터링에서 인스턴스를 제외한 후 구성을 업데이트하거나 대상 워크로드 인스턴스와 연결된 PodMonitoring
리소스를 바꿔야 합니다.
연결된 워크로드를 제외하지 않고 GKE가 만든 PodMonitoring
리소스를 업데이트하거나 삭제하면 GKE가 다른 지원되는 워크로드를 모니터링하면서 연속성을 보장하기 위해 PodMonitoring
리소스를 복원합니다.
워크로드의 PodMonitoring
리소스 찾기
Google Cloud 콘솔을 사용하여 GKE가 워크로드에 대해 만든 PodMonitoring
리소스를 식별할 수 있습니다.
객체 브라우저 페이지로 이동합니다.
클러스터 필드에 클러스터 이름을 입력합니다.
네임스페이스 필드에 네임스페이스 이름을 입력합니다.
객체 종류 필터에서 PodMonitoring을 선택합니다.
monitoring.googleapis.com에서 PodMonitoring을 선택합니다.
객체 이름을 클릭하여 객체를 검사합니다. 메타데이터 라벨
source:gke-auto-monitoring
은 GKE가PodMonitoring
리소스를 만들었음을 나타냅니다.
자동 모니터링에서 배포된 인스턴스 제외
지원되는 워크로드의 배포된 인스턴스를 모니터링하지 않으려는 경우 또는 워크로드의 모니터링 구성을 맞춤설정하려는 경우에는 자동 애플리케이션 모니터링에서 워크로드를 제외할 수 있습니다.
워크로드를 제외하려면 대상 워크로드 구성에 메타데이터 라벨 allow-gke-auto-monitoring: false
를 추가해야 합니다.
예를 들어 다음 매니페스트는 자동 애플리케이션 모니터링으로 모니터링되지 않는 RabbitMQ StatefulSet에 대해 설명합니다.
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: rabbitmq
labels:
allow-gke-auto-monitoring: "false"
spec:
serviceName: rabbitmq
replicas: 3
워크로드 인스턴스를 제외한 후 GKE가 워크로드에 대해 만든 PodMonitoring
리소스를 삭제할 수 있습니다. 사용자가 PodMonitoring
리소스를 삭제하거나 수정한 경우에는 GKE가 이를 복원하려고 시도하지 않습니다. 메타데이터 라벨 allow-gke-auto-monitoring: false
를 사용하여 새 워크로드를 배포하는 경우 GKE는 이 워크로드에 대해 PodMonitoring
리소스를 만들지 않습니다.
워크로드의 모니터링 구성 삭제
워크로드 모니터링을 중지하거나 워크로드에 대해 자체적으로 맞춤설정된 PodMonitoring
리소스를 배포하려면 모니터링 구성을 삭제하면 됩니다.
개별 워크로드의 자동 애플리케이션 모니터링 구성을 삭제하려면 다음을 수행합니다.
- 자동 애플리케이션 모니터링에서 워크로드를 제외합니다.
- GKE가 워크로드에 대해 만든
PodMonitoring
리소스를 식별합니다. PodMonitoring
리소스를 삭제합니다.kubectl delete podmonitoring POD_MONITORING_NAME -n NAMESPACE
다음을 바꿉니다.
POD_MONITORING_NAME
:PodMonitoring
리소스의 이름입니다.NAMESPACE
:PodMonitoring
리소스의 네임스페이스입니다.
클러스터에 있는 모든 워크로드에 대해 자동 애플리케이션 모니터링 구성을 삭제하려면 다음을 수행합니다.
- 자동 애플리케이션 모니터링을 사용 중지합니다.
클러스터에서 메타데이터 라벨이
source:gke-auto-monitoring
인 모든PodMonitoring
리소스를 삭제합니다.kubectl delete podmonitorings -l source=gke-auto-monitoring --all-namespaces
가격 책정
자동 애플리케이션 모니터링을 통해 지원되는 워크로드에 대해 즉시 사용 가능한 대시보드의 구성 및 설치는 추가 비용 없이 제공됩니다. 하지만 Google Cloud Managed Service for Prometheus의 측정항목 수집은 모니터링 가격 책정에 따라 Monitoring 비용이 발생합니다.
다음 단계
- 관측 가능성 측정항목 보기 방법 알아보기