Install
helm repo add kyverno https://kyverno.github.io/kyverno/
helm repo update
helm install kyverno kyverno/kyverno -n kyverno --create-namespace \
--set admissionController.replicas=3 \
--set backgroundController.replicas=2 \
--set cleanupController.replicas=2 \
--set reportsController.replicas=2
Shell
복사
kubectl -n kyverno get pods
Shell
복사
Kyverno 파일 구조
apiVersion: Kyverno API 버전을 지정합니다.
kind: 정책의 종류를 지정합니다 (ClusterPolicy 또는 Policy).
metadata: 정책의 메타데이터를 지정합니다.
name: 정책의 이름을 지정합니다.
annotations: 정책에 대한 추가 정보를 제공합니다.
spec: 정책의 세부 사항을 지정합니다.
validationFailureAction: 정책 위반 시의 동작을 지정합니다 (enforce, audit).
background: 백그라운드에서 정책을 적용할지 여부를 지정합니다.
rules: 정책의 규칙을 정의합니다.
name: 규칙의 이름을 지정합니다.
match: 규칙이 적용될 리소스를 지정합니다.
any: 하나 이상의 조건을 만족하는 리소스에 규칙을 적용합니다.
resources: 규칙이 적용될 리소스의 종류를 지정합니다.
validate: 검증 규칙을 정의합니다.
message: 정책 위반 시 출력할 메시지를 지정합니다.
pattern: 검증 패턴을 정의합니다.
YAML
복사
enforce
•
동작: 정책 위반 시 리소스의 생성, 업데이트 또는 삭제를 차단합니다.
•
사용 예: 클러스터에서 강력한 정책 준수가 필요한 경우 사용됩니다.
•
예시: Pod가 default 네임스페이스에 생성되지 않도록 강제하려면 사용됩니다.
audit
•
동작: 정책 위반 시 리소스의 생성, 업데이트 또는 삭제를 허용하지만, 정책 위반 사항을 감사 로그에 기록합니다.
•
사용 예: 정책 위반 사항을 모니터링하고, 클러스터의 현재 상태를 평가하는 데 사용됩니다. 정책을 강제하기 전에 테스트 목적으로 사용할 수 있습니다.
•
예시: Pod가 default 네임스페이스에 생성되더라도 이를 허용하고, 정책 위반 사항을 감사 로그에 기록하려면 audit을 사용합니다.
Example