정책 컨트롤러 측정항목 사용

이 페이지에서는 측정항목을 사용하여 정책 컨트롤러를 모니터링하는 방법을 설명합니다.

정책 컨트롤러에는 정책 사용과 관련된 여러 측정항목이 포함되어 있습니다. 예를 들어 제약조건 및 제약조건 템플릿 수와 감지된 감사 위반 수를 기록하는 측정항목이 있습니다. 이러한 측정항목을 만들고 기록하기 위해 정책 컨트롤러에서는 OpenTelemetry를 사용합니다. 이러한 측정항목을 Prometheus 또는 Cloud Monitoring으로 내보내도록 정책 컨트롤러를 구성할 수 있습니다. 측정항목 내보내기의 기본 설정에서는 Prometheus와 Cloud Monitoring 모두에 측정항목을 내보냅니다.

측정항목 내보내기 구성

정책 컨트롤러에서 측정항목을 내보내는 방법을 구성할 수 있습니다. 정책 컨트롤러를 설치할 때는 Prometheus 또는 Cloud Monitoring을 선택하거나 둘 다 선택하거나, 둘 다 선택하지 않을 수 있습니다. 기본적으로 정책 컨트롤러는 Prometheus 및 Cloud Monitoring 모두에 측정항목을 내보내려고 시도합니다.

Cloud Monitoring으로 측정항목 내보내기

정책 컨트롤러가 기본 서비스 계정이 있는 Google Cloud 환경 내에서 실행되는 경우 정책 컨트롤러는 Cloud Monitoring으로 측정항목을 자동으로 내보냅니다.

GKE 워크로드 아이덴티티 또는 Fleet 워크로드 아이덴티티가 사용 설정된 경우 다음 명령어를 실행하여 정책 컨트롤러에서 측정항목을 전송하도록 허용합니다.

VMware용, 베어메탈용 GKE 클러스터 및 GKE Multi-Cloud 클러스터(AWS 및 Azure)는 Fleet 워크로드 아이덴티티가 사용 설정된 상태로 프로젝트 Fleet에 자동으로 등록됩니다.

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="serviceAccount:PROJECT_ID.svc.id.goog[gatekeeper-system/gatekeeper-admin]" \
  --role=roles/monitoring.metricWriter

PROJECT_ID를 클러스터의 Google Cloud 프로젝트 ID로 바꿉니다.

이러한 측정항목을 보는 방법의 예시는 Cloud Monitoring에서 OpenCensus 측정항목 읽기를 참조하세요.

Prometheus로 측정항목 내보내기

정책 컨트롤러는 gatekeeper-system 네임스페이스 아래에 있는 gatekeeper-controller-manager-* 포드의 포트 8888에서 Prometheus의 측정항목을 내보냅니다.

Google Cloud Managed Service for Prometheus가 구성된 클러스터에서 정책 컨트롤러가 실행되는 경우 이러한 측정항목이 자동으로 수집되어 Cloud Monitoring에 저장됩니다. 정책 컨트롤러가 설치되면 Google Cloud Managed Service for Prometheus를 사용 설정하는 클러스터에서도 작동합니다. 정책에 따라 Google Cloud Managed Service for Prometheus에서 사용하는 기본 Compute Engine 서비스 계정에 추가 권한을 부여해야 할 수도 있습니다. Google Cloud Managed Service for Prometheus에 권한을 부여하는 방법에 대한 자세한 내용은 관리형 컬렉션 사용 설정: GKE를 참조하세요. Google Cloud Managed Service for Prometheus 구성에 대한 자세한 내용은 관리형 컬렉션 시작하기를 참조하세요.

GKE Enterprise에서 정책 컨트롤러를 사용할 수 있으므로 Google Cloud Managed Service for Prometheus를 포함하여 Google Cloud Observability에 대한 추가 비용은 없습니다. GKE Enterprise 라이선스를 요구하기 전에 정책 컨트롤러를 설치했고 Google Cloud Managed Service for Prometheus를 사용 설정한 경우 수집된 측정항목에 대한 요금이 표시될 수 있습니다. Cloud Monitoring 가격 책정에 대한 자세한 내용은 Google Cloud Managed Service for Prometheus 가격 책정을 참조하세요.

Google Cloud Managed Service for Prometheus 솔루션으로 측정항목을 보는 방법의 예시는 Cloud Monitoring을 사용한 쿼리를 참조하세요.

측정항목 보기

정책 컨트롤러 측정항목은 Cloud Monitoring 프로젝트로 Prometheus 형식으로 내보내집니다. 따라서 Cloud Monitoring API와 Google Cloud 콘솔의 대시보드를 사용하여 측정항목을 쿼리할 수 있습니다. 비즈니스 및 운영 요구사항을 충족하도록 이 대시보드를 수정할 수 있습니다.

Cloud Monitoring API를 쿼리하려면 Prometheus 쿼리 언어(PromQL)(Kubernetes 측정항목의 사실상 쿼리 언어) 또는 모니터링 쿼리 언어(MQL)(Google의 독점 측정항목 쿼리 언어)를 사용합니다.

정책 컨트롤러 대시보드를 만들려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔에서 대시보드 페이지로 이동합니다.

    대시보드로 이동

  2. 대시보드 개요 페이지에서 샘플 라이브러리 탭을 클릭합니다. 이 탭에는 가져올 수 있는 모든 대시보드가 표시됩니다.

  3. 카테고리 열에서 Anthos Config Management를 선택합니다.

  4. Anthos Config Management 샘플 테이블에서 정책 컨트롤러 체크박스를 선택합니다.

  5. 가져오기를 클릭합니다.

  6. 대시보드를 만들려면 확인 창에서 확인을 클릭합니다.

정책 컨트롤러 대시보드를 보고 수정하려면 다음 안내를 따르세요.

  1. 대시보드 개요 페이지에서 대시보드 목록 탭을 선택합니다.
  2. 정책 컨트롤러 대시보드를 선택합니다.
  3. 대시보드를 맞춤설정하려면 대시보드 수정을 클릭합니다.
  4. 필요한 항목을 변경하고 저장을 클릭합니다. 대시보드 맞춤설정에 대한 자세한 내용은 Cloud Monitoring 문서에서 대시보드 필터링을 참조하세요.

알림 만들기

측정항목이 특정 기준을 충족할 때 알림을 받으려면 Cloud Monitoring에서 알림 정책을 만듭니다.

타사 통합

Cloud Monitoring API를 사용하면 모든 서드 파티 관측 가능성 도구에서 정책 컨트롤러 측정항목을 수집할 수 있습니다.

예를 들어 Grafana 대시보드를 사용할 경우 Cloud Monitoring API를 Grafana의 데이터 소스로 추가합니다. 자세한 내용은 Grafana 문서의 Google Cloud Monitoring을 참조하세요.

사용 가능한 측정항목

클러스터에 정책 컨트롤러가 사용 설정되어 있고 Cloud Monitoring으로 내보내도록 구성된 경우 다음 측정항목을 쿼리할 수 있습니다(모두 OpenCensus/ 프리픽스가 추가됨).

이름 유형 라벨 설명
OpenCensus/audit_duration_seconds 누적 감사주기 지속 기간 분포
OpenCensus/audit_last_run_time 게이지 부동 소수점으로 초 단위로 제공된 마지막 감사 런타임 이후의 에포크 타임스탬프
OpenCensus/constraint_template_ingestion_count 누적 상태 제약조건 템플릿 처리 조치의 총 수
OpenCensus/constraint_template_ingestion_duration_seconds 누적 상태 제약조건 템플릿 처리 기간 분포
OpenCensus/constraint_templates 게이지 상태 현재 제약조건 템플릿 수
OpenCensus/validation_request_count 카운터 admission_status API 서버의 허용 요청 수
OpenCensus/validation_request_duration_seconds 누적 admission_status 입학 요청 기간 분포
OpenCensus/violations 게이지 적용_작업 마지막 감사주기에서 감지된 감사 위반 수
OpenCensus/watch_manager_intended_watch_gvk 게이지 보고 있는 고유한 GroupVersionKinds Policy Controller 수. 이 측정항목은 동기화된 리소스와 제약조건의 조합입니다.
OpenCensus/watch_manager_watched_gvk 게이지 실제로 보고 있는 고유한 GroupVersionKinds 정책 컨트롤러 수. 이 측정항목은 OpenCensus/watch_manager_intended_watch_gvk와 동일하게 수렴합니다.

정책 컨트롤러가 Prometheus로 내보내도록 구성된 경우 다음 측정항목을 쿼리할 수 있습니다(모두 Prometheus/ 프리픽스가 추가됨).

이름 유형 라벨 설명
Prometheus/gatekeeper_audit_duration_seconds/histogram 누적 감사주기 지속 기간 분포
Prometheus/gatekeeper_audit_last_run_end_time/gauge 게이지 부동 소수점으로 초 단위로 제공된 마지막 감사 실행 종료의 에포크 타임스탬프
Prometheus/gatekeeper_audit_last_run_time/gauge 게이지 부동 소수점으로 초 단위로 제공된 마지막 감사 실행 시작의 에포크 타임스탬프
Prometheus/gatekeeper_constraint_template_ingestion_count/counter 누적 상태 제약조건 템플릿 처리 조치의 총 수
Prometheus/gatekeeper_constraint_template_ingestion_duration_seconds/histogram 누적 상태 제약조건 템플릿 처리 기간 분포
Prometheus/gatekeeper_constraint_templates/gauge 게이지 상태 현재 제약조건 템플릿 수
Prometheus/gatekeeper_validation_request_count/counter 누적 admission_status, admission_dryrun API 서버의 허용 요청 수
Prometheus/gatekeeper_validation_request_duration_seconds/histogram 누적 admission_status 입학 요청 기간 분포
Prometheus/gatekeeper_violations/gauge 게이지 적용_작업 마지막 감사주기에서 감지된 감사 위반 수
Prometheus/gatekeeper_watch_manager_intended_watch_gvk/gauge 게이지 보고 있는 고유한 GroupVersionKinds Policy Controller 수. 이 측정항목은 동기화된 리소스와 제약조건의 조합입니다.
Prometheus/gatekeeper_watch_manager_watched_gvk/gauge 게이지 실제로 보고 있는 고유한 GroupVersionKinds 정책 컨트롤러 수. 이 측정항목은 Prometheus/gatekeeper_watch_manager_intended_watch_gvk/gauge와 동일하게 수렴합니다.

다음 단계