OPA Gatekeeper

지원 버전: Gatekeeper v3.14+, Kubernetes 1.25+ 마지막 업데이트: 2026년 2월 22일

개요

OPA(Open Policy Agent) Gatekeeper는 Kubernetes를 위한 정책 관리 도구로, Rego 언어를 사용하여 선언적 정책을 작성하고 Admission Controller를 통해 클러스터 정책을 강제합니다.

spinner

Gatekeeper vs Kyverno 비교

특성
Gatekeeper
Kyverno

정책 언어

Rego (선언적)

YAML (네이티브 K8s)

학습 곡선

높음 (새로운 언어)

낮음 (K8s 친화적)

유연성

매우 높음

높음

외부 데이터

OPA 번들, 외부 소스

ConfigMap, API Call

Mutation

v3.10+ 지원

네이티브 지원

생성(Generate)

미지원

네이티브 지원

감사(Audit)

내장

내장

리소스 사용량

중간

낮음

커뮤니티

CNCF Graduated

CNCF Incubating

Gatekeeper 설치

Helm을 이용한 설치

매니페스트를 이용한 설치

설치 확인

Rego 언어 기초

Rego 문법 개요

Rego 데이터 타입

Rego 연산자와 내장 함수

Constraint Template 작성

기본 구조

Privileged Container 방지

리소스 제한 강제

이미지 레지스트리 제한

Constraint 정의

기본 Constraint 작성

Namespace 선택자 사용

리소스 제한 Constraint

이미지 레지스트리 Constraint

고급 정책 패턴

외부 데이터 참조

네임스페이스 간 정책

복합 조건 정책

Mutation 기능

AssignMetadata 사용

Assign 사용

조건부 Mutation

ModifySet 사용

감사(Audit) 및 모니터링

Audit 설정

Constraint 위반 확인

Prometheus 메트릭

주요 메트릭:

메트릭 이름
설명

gatekeeper_violations

Constraint별 위반 수

gatekeeper_constraints

총 Constraint 수

gatekeeper_constraint_templates

총 ConstraintTemplate 수

gatekeeper_request_count

Admission 요청 수

gatekeeper_request_duration_seconds

요청 처리 시간

gatekeeper_audit_duration_seconds

Audit 소요 시간

Grafana 대시보드

테스트 및 CI/CD 통합

Gator CLI 테스트

테스트 스위트 정의

테스트 픽스처

GitHub Actions 통합

모범 사례

정책 구조화

점진적 정책 적용

정책 예외 관리

문제 해결

일반적인 문제

디버깅 팁

요약

OPA Gatekeeper는 강력한 정책 엔진으로:

  1. Rego 언어: 선언적이고 유연한 정책 작성

  2. ConstraintTemplate: 재사용 가능한 정책 템플릿

  3. Constraint: 정책의 구체적 적용

  4. Mutation: 리소스 자동 수정

  5. Audit: 기존 리소스 정책 준수 검사

  6. 테스트: Gator를 통한 정책 검증

Kyverno 대비 학습 곡선이 높지만, 복잡한 정책 로직에서 더 큰 유연성을 제공합니다.


관련 문서

마지막 업데이트