Google Kubernetes Engine(GKE)에는 Google Cloud Managed Service for Prometheus를 포함하여 Cloud Logging 및 Cloud Monitoring과의 통합이 포함됩니다.
이 통합을 통해 실행 중인 GKE 클러스터를 모니터링하고, 시스템 및 디버그 로그를 관리하고, 고급 프로파일링 및 추적 기능을 사용하여 시스템 성능을 분석할 수 있습니다.
이 통합은 또한 GKE 클러스터 관측을 위한 대시보드를 제공합니다.
기본 감사 로그를 비롯한 보안 로그는 GKE 클러스터에 대해 Cloud Logging이 사용 설정되지 않은 경우에도 GKE 및 다른 대부분의 Google Cloud 서비스에서 사용할 수 있습니다. 자세한 내용은 Cloud 감사 로그를 참조하세요.
이 페이지에서는 다음 작업을 수행하는 방법을 설명합니다.
새 클러스터를 만들고 Cloud Logging, Cloud Monitoring, Google Cloud Managed Service for Prometheus를 구성합니다.
수집할 로그 및 측정항목을 선택합니다.
클러스터에 대해 Cloud Logging, Cloud Monitoring, Google Cloud Managed Service for Prometheus를 사용 중지합니다.
GKE Autopilot 클러스터의 경우 Cloud Logging 및 Cloud Monitoring 통합을 사용 중지할 수 없습니다.
시작하기 전에
시작하기 전에 다음 태스크를 수행했는지 확인합니다.
- Google Kubernetes Engine API를 사용 설정합니다. Google Kubernetes Engine API 사용 설정
- 이 태스크에 Google Cloud CLI를 사용하려면 gcloud CLI를 설치한 후 초기화합니다. 이전에 gcloud CLI를 설치한 경우
gcloud components update
를 실행하여 최신 버전을 가져옵니다.
클러스터가 포함된 프로젝트의 소유자인지 확인하세요.
Cloud Logging API를 사용 설정했는지 확인합니다. 개요 페이지에서 Cloud Logging API 상태를 확인할 수 있습니다.
로그 및 측정항목
GKE 클러스터에서 Cloud Logging 및 Cloud Monitoring으로 로그 및 측정항목을 전송할지 여부를 선택할 수 있습니다. 다음 섹션에서는 사용 가능한 로그 및 측정항목이 무엇이고 클러스터 생성 시 기본적으로 사용 설정되는 로그 및 측정항목이 무엇인지 설명합니다.
사용 가능한 로그
Cloud Logging으로 로그 전송을 선택한 경우 시스템 로그를 전송해야 하며, 선택적으로 추가 소스의 로그를 전송할 수 있습니다.
Cloud Logging 가격 책정 알아보기
다음 테이블에서는 create 및 update 명령어의 --logging
플래그에 지원되는 값을 보여줍니다.
로그 소스 | --logging 값 |
수집된 로그 |
---|---|---|
없음 | NONE |
Cloud Logging으로 로그가 전송되지 않습니다. 클러스터에 로그 수집 에이전트가 설치되지 않습니다. 이 값은 GKE Autopilot 클러스터에서 지원되지 않습니다. |
시스템 | SYSTEM |
다음 위치에서 로그 수집:
또한 Kubernetes 이벤트를 수집합니다. 이 값은 모든 클러스터 유형에 필요합니다. |
워크로드 | WORKLOAD |
사용자 노드에서 실행되는 비시스템 컨테이너로 생성되는 모든 로그입니다. 이 값은 기본적으로 사용 설정되어 있지만 모든 클러스터 유형에 대해서는 선택사항입니다. |
API 서버 | API_SERVER |
kube-apiserver 에서 생성하는 모든 로그입니다. 이 값은 모든 클러스터 유형에 대해 선택사항입니다. |
스케줄러 | SCHEDULER |
kube-scheduler 에서 생성하는 모든 로그입니다. 이 값은 모든 클러스터 유형에 대해 선택사항입니다. |
컨트롤러 관리자 | CONTROLLER_MANAGER |
kube-controller-manager 에서 생성하는 모든 로그입니다. 이 값은 모든 클러스터 유형에 대해 선택사항입니다. |
사용 가능한 측정항목
Cloud Monitoring으로 측정항목 전송을 선택한 경우 시스템 측정항목을 전송해야 하며, 선택적으로 추가 측정항목을 전송할 수 있습니다.
청구 대상이 아닌 측정항목을 포함하여 Cloud Monitoring 가격 책정에 대해 자세히 알아보세요.
다음 테이블에서는 create 및 update 명령어의 --monitoring
플래그에 지원되는 값을 보여줍니다.
소스 | --monitoring 값 |
수집된 측정항목 |
---|---|---|
없음 | NONE |
Cloud Monitoring으로 측정항목이 전송되지 않습니다. 클러스터에 측정항목 수집 에이전트가 설치되지 않습니다. 이 값은 GKE 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 측정항목. |
또한 Google Cloud Managed Service for Prometheus를 사용해서 GKE 워크로드로 노출되는 Prometheus 스타일의 측정항목을 수집할 수 있습니다. 이렇게 하면 대규모 Prometheus 관리 및 운영을 수동으로 수행할 필요 없이 Prometheus를 사용해서 워크로드를 모니터링하고 알림을 표시할 수 있습니다.
기본적으로 사용 설정되는 로그 및 측정항목
Google Cloud에서 새 GKE 클러스터를 만들면 클러스터 생성 중에 일부 로그와 측정항목이 기본적으로 사용 설정됩니다.
- 시스템 로그 및 측정항목은 모든 유형의 클러스터에 대해 사용 설정되며 중지될 수 없습니다.
- 워크로드 로그는 모든 Autopilot 클러스터에 기본적으로 사용 설정되지만 사용 중지할 수 있습니다. 지원 가능성에 영향을 미치므로 워크로드 로그는 사용 중지하지 않는 것이 좋습니다.
- GKE Enterprise 버전 프로젝트의 경우 클러스터를 만드는 동안 Fleet에 등록하면 유용한 추가 로그 및 측정항목이 기본적으로 사용 설정됩니다. 클러스터가 생성된 후 이러한 로그 및 측정항목을 사용 설정하려면 클러스터 수정을 참조하세요.
다음 표에서 체크표시()는 GKE Enterprise가 사용 설정된 프로젝트에서 새 클러스터를 만들고 등록할 때 기본적으로 사용 설정되는 로그 및 측정항목을 나타냅니다.
로그
로그 이름 | Autopilot | Standard |
---|---|---|
시스템 | ||
Workloads | - |
|
API 서버 | ||
스케줄러 | ||
컨트롤러 관리자 |
제어 영역 로그(API 서버, 스케줄러, 컨트롤러 관리자)에는 Cloud Logging 요금이 부과됩니다.
측정항목
측정항목 이름 | Autopilot | Standard |
---|---|---|
시스템 | ||
API 서버 | ||
스케줄러 | ||
컨트롤러 관리자 | ||
영구 볼륨(스토리지) | ||
포드 | ||
Deployment | ||
StatefulState | ||
DaemonSet | ||
HorizonalPodAutoscaler | ||
cAdvisor | ||
Kubelet |
GKE Enterprise가 사용 설정된 프로젝트에 등록된 모든 클러스터는 추가 비용 없이 제어 영역 측정항목, Kube 상태 측정항목, cAdvisor/Kubelet 측정항목을 사용할 수 있습니다. 그렇지 않은 경우에는 이러한 측정항목에 Cloud Monitoring 요금이 부과됩니다.
클러스터 생성 중이나 클러스터 생성 후에 기본 로그 및 측정항목을 사용 중지할 수 있습니다.
새 클러스터의 모니터링 및 로깅 구성
이 섹션의 클러스터 만들기 안내에서는 Cloud Logging 및 Cloud Monitoring에 관련된 옵션만 다룹니다. GKE 클러스터 만들기에 대한 자세한 안내는 Standard 또는 Autopilot 클러스터 만들기 문서를 참조하세요.
GKE 클러스터를 만드는 동안 로깅 및 모니터링을 수동으로 구성하려면 다음 단계를 수행합니다.
콘솔
Autopilot 클러스터의 경우:
Autopilot 클러스터 만들기 페이지의 탐색 창에서 고급 설정을 클릭합니다.
작업 목록에서 수집하려는 로그 및 측정항목을 선택합니다.
Cloud Logging의 구성요소 목록에서 로그를 수집할 구성요소를 선택합니다.
Cloud Monitoring의 구성요소 목록에서 측정항목을 수집할 구성요소를 선택합니다.
GKE Autopilot 클러스터는 항상 Google의 원격 분석 수집 권장사항을 사용합니다. 즉, 시스템 및 워크로드 로깅이 항상 사용 설정되고 시스템 모니터링도 항상 사용 설정됩니다.
만들기를 클릭합니다.
표준 클러스터의 경우:
Standard 클러스터 만들기 페이지의 탐색창에 있는 클러스터 아래에서 기능을 클릭합니다.
작업 목록에서 수집하려는 로그 및 측정항목을 선택합니다.
Cloud Logging의 구성요소 목록에서 로그를 수집할 구성요소를 선택합니다.
Cloud Monitoring의 구성요소 목록에서 측정항목을 수집할 구성요소를 선택합니다.
Cloud Logging을 사용 중지하려면(감사 로그 제외) Cloud Logging 사용 설정 체크박스를 선택 취소합니다.
Cloud Monitoring을 사용 중지하려면 Cloud Monitoring 사용 설정 체크박스를 선택 취소합니다.
Google Cloud Managed Service for Prometheus를 사용 중지하려면 Google Cloud Managed Service for Prometheus 사용 설정 체크박스를 해제합니다.
gcloud
새 클러스터의 경우 Cloud Logging 및 Cloud Monitoring이 기본적으로 사용 설정됩니다. 클러스터를 만들려면 다음 명령어를 실행합니다.
gcloud container clusters create CLUSTER_NAME \ --location=COMPUTE_LOCATION
다음을 바꿉니다.
CLUSTER_NAME
: 클러스터 이름COMPUTE_LOCATION
: 클러스터의 Compute Engine 위치입니다.
또는
create
명령어의--logging
플래그에 쉼표로 구분된 값 목록을 전달하여 Cloud Logging에 전송되는 로그를 구성할 수 있습니다. 로그를 수집하지 않으려면--logging=NONE
을 전달합니다. 시스템, API 서버, 스케줄러, 컨트롤러 관리자 로그를 수집하려면--logging=SYSTEM,API_SERVER,SCHEDULER,CONTROLLER_MANAGER
를 전달합니다. 시스템 및 워크로드 로그를 모두 수집하려면--logging=SYSTEM,WORKLOAD
를 전달합니다. 예를 들면 다음과 같습니다.gcloud container clusters create CLUSTER_NAME \ --location=COMPUTE_LOCATION \ --logging=SYSTEM,WORKLOAD
마찬가지로 쉼표로 구분된 값 목록을
--monitoring
플래그에 전달하여 Cloud Monitoring에 전송되는 측정항목을 구성할 수 있습니다. 측정항목을 수집하지 않으려면--monitoring=NONE
을 전달합니다. 시스템 측정항목을 수집하려면--monitoring=SYSTEM
을 전달합니다. 모든 측정항목을 수집하려면--monitoring=SYSTEM,API_SERVER,SCHEDULER,CONTROLLER_MANAGER,STORAGE,POD,DEPLOYMENT,STATEFULSET,
DAEMONSET,HPA,CADVISOR,KUBELET
를 전달합니다. 예를 들면 다음과 같습니다.gcloud container clusters create CLUSTER_NAME \ --location=COMPUTE_LOCATION \ --monitoring=SYSTEM,API_SERVER,SCHEDULER,CONTROLLER_MANAGER,STORAGE,POD,DEPLOYMENT,STATEFULSET,DAEMONSET,HPA,CADVISOR,KUBELET
개별적으로
--enable-managed-prometheus
플래그를 사용하여 Google Cloud Managed Service for Prometheus를 사용 설정할 수 있습니다. 예를 들면 다음과 같습니다.gcloud container clusters create CLUSTER_NAME \ --location=COMPUTE_LOCATION \ --enable-managed-prometheus
--enable-managed-prometheus
플래그는 구성이 필요한 관리되는 수집기를 사용 설정합니다.
Terraform
Terraform을 사용하여 로그 및 측정항목 수집을 구성하려면
google_container_cluster
용 Terraform 레지스트리에서logging_config
및monitoring_config
블록을 참조하세요. API 서버, 스케줄러, 컨트롤러 관리자에서 로그 수집을 사용 설정하려면 Terraform Google Cloud 제공업체 버전 4.44.0 이상이 필요합니다.Terraform과 함께 Google Cloud를 사용하는 방법에 대한 일반적인 내용은 Google Cloud에서 Terraform을 참조하세요.
기존 클러스터에 대한 모니터링 및 로깅 구성
다음 섹션에서는 기존 GKE 클러스터에 대해 Cloud Logging 및 Cloud Monitoring 통합을 수정하는 방법을 자세히 설명합니다.
모니터링 및 로깅 지원을 변경하는 것과 클러스터의 Kubernetes 버전을 변경하는 것은 별개의 작업입니다. 클러스터의 Kubernetes 버전을 변경해도 구성된 모니터링 및 로깅 지원은 변경되지 않습니다.
클러스터에서 사용하는 모니터링 및 로깅 지원 기능은 무엇인가요?
클러스터의 Cloud Logging 및 Cloud Monitoring 통합 설정을 보려면 다음 단계를 따르세요.
-
Google Cloud 콘솔에서 Kubernetes 클러스터 페이지로 이동합니다.
검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Kubernetes Engine인 결과를 선택합니다.
클러스터의 세부정보 패널에서 Cloud Logging, Cloud Monitoring, Google Cloud Managed Service for Prometheus 상태를 확인합니다.
클러스터 수정
기존 클러스터에 대해 Cloud Logging 및 Cloud Monitoring 통합 설정을 변경하려면 다음 단계를 따르세요.
Console
-
Google Cloud 콘솔에서 Kubernetes 클러스터 페이지로 이동합니다.
검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Kubernetes Engine인 결과를 선택합니다.
클러스터 이름을 클릭합니다.
Cloud Logging에 전송된 로그, Cloud Monitoring에 전송된 측정항목, Google Cloud Managed Service for Prometheus가 사용 설정되었는지 여부를 수정하려면 Cloud Logging, Cloud Monitoring, Google Cloud Managed Service for Prometheus 옆에 있는 수정 edit을 클릭합니다.
저장을 클릭합니다.
gcloud
다음 gcloud
안내는 gcloud container clusters update
명령어를 사용하여 클러스터 모니터링 및 로깅 지원을 업그레이드하는 방법을 다룹니다. upgrade
명령어가 아닌 update
명령어를 사용합니다.
gcloud container clusters update
명령어의--logging
플래그에 쉼표로 구분된 값 목록을 전달하여 Cloud Logging에 전송되는 로그를 구성합니다. 사용 가능한 로그 소스의 전체 목록을 참조하세요. 예를 들어 시스템 및 워크로드 로그를 모두 수집하려면--logging=SYSTEM,WORKLOAD
를 전달합니다. 시스템 로그만 수집하려면--logging=SYSTEM
을 전달합니다. 또는 로그를 수집하지 않으려면--logging=NONE
을 전달합니다.gcloud container clusters update CLUSTER_NAME \ --location=COMPUTE_LOCATION \ --logging=NONE
쉼표로 구분된 값 목록을
gcloud container clusters update
명령어의--monitoring
플래그에 전달하여 Cloud Monitoring에 전송되는 측정항목을 구성합니다. 사용 가능한 측정항목 소스의 전체 목록을 참조하세요. 예를 들어 시스템 측정항목을 수집하려면--monitoring=SYSTEM
을 전달합니다. 또는 측정항목을 수집하지 않으려면--monitoring=NONE
을 전달합니다.gcloud container clusters update CLUSTER_NAME \ --location=COMPUTE_LOCATION \ --monitoring=NONE
--enable-managed-prometheus
또는--disable-managed-prometheus
플래그를 사용하여 Google Cloud Managed Service for Prometheus 사용 설정 여부를 구성합니다. 예를 들면 다음과 같습니다.gcloud container clusters update CLUSTER_NAME \ --location=COMPUTE_LOCATION \ --enable-managed-prometheus
Terraform
Terraform을 사용하여 로그 및 측정항목 수집을 구성하려면
google_container_cluster
용 Terraform 레지스트리에서logging_config
및monitoring_config
블록을 참조하세요. API 서버, 스케줄러, 컨트롤러 관리자에서 로그 수집을 사용 설정하려면 Terraform Google Cloud 제공업체 버전 4.44.0 이상이 필요합니다.Terraform과 함께 Google Cloud를 사용하는 방법에 대한 일반적인 내용은 Google Cloud에서 Terraform을 참조하세요.
지원 중단된 구성 매개변수
이전에 예전 구성 매개변수를 사용하여 GKE 클러스터에 대해 로깅 및 모니터링 지원을 구성한 경우 해당 매개변수는 지원 중단되었습니다. 다음 표에서는 지원 중단된 플래그를 대체하는 동등한 구성 매개변수를 보여줍니다.
기존 설정 | 기존 create 인수 |
기존 update 인수 |
새로운 create 및 update 인수 |
---|---|---|---|
사용 중지됨 | --no-enable-stackdriver-kubernetes |
--no-enable-stackdriver-kubernetes |
--logging=NONE --monitoring=NONE |
시스템 모니터링만(로깅 사용 중지됨) | --enable-stackdriver-kubernetes --no-enable-cloud-logging |
--logging-service=none --monitoring-service=monitoring.googleapis.com/kubernetes |
--logging=NONE --monitoring=SYSTEM |
시스템 및 워크로드 로깅만(모니터링 사용 중지됨) | --enable-stackdriver-kubernetes --no-enable-cloud-monitoring |
--logging-service=logging.googleapis.com/kubernetes --monitoring-service=none |
--logging=SYSTEM,WORKLOAD --monitoring=NONE |
시스템 로깅 및 모니터링만(베타) | --enable-logging-monitoring-system-only |
--enable-logging-monitoring-system-only |
--logging=SYSTEM --monitoring=SYSTEM |
시스템/워크로드 로깅 및 모니터링 | --enable-stackdriver-kubernetes |
--enable-stackdriver-kubernetes |
--logging=SYSTEM,WORKLOAD --monitoring=SYSTEM |
다음 단계
- Cloud Logging, Cloud Monitoring, Google Cloud Managed Service for Prometheus에 대한 자세한 내용은 가격 책정 페이지를 참조하세요.