정책 컨트롤러 모니터링

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

정책 컨트롤러는 OpenCensus를 사용하여 프로세스와 관련된 측정항목을 만들고 기록합니다. 정책 컨트롤러를 구성하여 이러한 측정항목을 PrometheusCloud Monitoring으로 내보낼 수 있습니다.

사용 가능한 측정항목

클러스터에서 정책 컨트롤러가 사용 설정되면 다음 측정항목을 쿼리할 수 있습니다(모두 gatekeeper_ 프리픽스가 추가됨).

이름 유형 라벨 설명
gatekeeper_audit_duration_seconds 히스토그램 감사주기 지속 기간 분포
gatekeeper_audit_last_run_time 게이지 부동 소수점으로 초 단위로 제공된 마지막 감사 런타임 이후의 에포크 타임스탬프
gatekeeper_constraint_template_ingestion_count 카운터 status 제약조건 템플릿 처리 조치의 총 수
gatekeeper_constraint_template_ingestion_duration_seconds 히스토그램 status 제약조건 템플릿 처리 기간 분포
gatekeeper_constraint_templates 게이지 status 현재 제약조건 템플릿 수
gatekeeper_constraints 게이지 적용_작업, 상태 제약조건의 현재 수
gatekeeper_request_count 카운터 입학_상태 API 서버의 허용 요청 수
gatekeeper_request_duration_seconds 히스토그램 입학_상태 입학 요청 기간 분포
gatekeeper_violations 게이지 적용_작업 마지막 감사주기에서 감지된 감사 위반 수
gatekeeper_watch_manager_intended_watch_gvk 게이지 보고 있는 고유한 GroupVersionKinds Policy Controller 수 동기화된 리소스와 제약조건의 조합입니다. 현재 구현되어 있지 않습니다.
gatekeeper_watch_manager_watched_gvk 게이지 실제로 보고 있는 고유한 GroupVersionKinds Policy Controller 수 즉, gatekeeper_watch_manager_intended_watch_gvk와 동일하게 수렴합니다. 현재 구현되어 있지 않습니다.
gatekeeper_sync 게이지 종류, 상태 OPA 캐시에 복제된 리소스 수
gatekeeper_sync_duration_seconds 히스토그램 객체 동기화 기간 배포
gatekeeper_sync_last_run_time 게이지 리소스가 마지막으로 동기화된 시간

측정항목 내보내기 구성

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

Anthos Config Management 1.12.0 이전 버전에서는 정책 컨트롤러가 측정항목을 Prometheus로만 내보냅니다.

Cloud Monitoring으로 정책 컨트롤러 모니터링

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

워크로드 아이덴티티가 사용 설정되어 있으면 다음 단계를 완료하세요.

  1. 네임스페이스 gatekeeper-system의 Kubernetes 서비스 계정 gatekeeper-admin를 측정항목 작성자 역할이 있는 Google 서비스 계정에 바인딩합니다.

    gcloud iam service-accounts add-iam-policy-binding \
        --role roles/iam.workloadIdentityUser \
        --member "serviceAccount:PROJECT_ID.svc.id.goog[gatekeeper-system/gatekeeper-admin]" \
        GSA_NAME@PROJECT_ID.iam.gserviceaccount.com
    

    다음을 바꿉니다.

    • PROJECT_ID: 프로젝트 ID입니다.
    • GSA_NAME: 모니터링 측정항목 작성자(roles/monitoring.metricWriter) IAM 역할이 있는 Google 서비스 계정입니다.

    이 작업에는 프로젝트에 대한 iam.serviceAccounts.setIamPolicy 권한이 필요합니다.

  2. Google 서비스 계정의 이메일 주소를 사용하여 Kubernetes 서비스 계정에 주석을 추가하세요.

    kubectl annotate serviceaccount \
        --namespace gatekeeper-system \
        gatekeeper-admin \
        iam.gke.io/gcp-service-account=GSA_NAME@PROJECT_ID.iam.gserviceaccount.com
    

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

Prometheus를 사용하여 정책 컨트롤러 모니터링

정책 컨트롤러는 기본적으로 포트 8675에서 Prometheus의 측정항목을 내보냅니다. Prometheus에서 커스텀 측정항목을 가져오도록 Cloud Monitoring을 구성할 수도 있습니다. 자세한 내용은 관리형 Prometheus를 참조하세요.