이전 블로그(https://devocean.sk.com/blog/techBoardDetail.do?ID=163522)에서 정책엔진인 OAP에 대해 소개했었다. kubernetes로 한정할 경우 또 다른 정책엔진이 있어 이를 소개하고 간단하게 사용하는 방법을 정리하고자 한다.

Kyverno?

Kyverno는 새로운 k8s용 정책엔진으로 정책을 k8s 자원으로 관리할 수 있게 해준다. 기존에 소개했었던 OPA와는 다르게 전용 정책언어는 없으며 순수하게 CR만으로 정책을 표현하고 이에 따른 수행을 한다. 이에따라 익숙한 도구들인 kubectl, git, kustomize 들을 직접 사용할 수 있다. Kyverno 정책을 사용하여 k8s의 자원들을 검증하고, 변경하고, 생성할 수 있다. 제공되는 CLI를 사용하면 정책을 테스트할 수 있으며 이를 사용하여 CI/CD 파이프라인 등에 적용할 수 있다.

https://kyverno.io/#td-block-1

https://kyverno.io/#td-block-1

동작방식

본 내용은 기본적으로 kubernetes의 Admission control에 대해 이해하고 있다고 가정하고 정리하였다. 필요하다면 Admission control에 대해 자세하게 설명한 커피고래님의 블로그를 참조하자.(https://coffeewhale.com/kubernetes/admission-control/2021/04/28/opa1/)

구조(Architecture)

고가용성을 위해 여러개의 복제본(replica)을 유지할수 있고 각각의 복제본은 각기 다른 역할을 수행하는 여러개의 컨트롤러를 포함한다. (아래의 모듈들)

https://kyverno.io/docs/introduction/

https://kyverno.io/docs/introduction/

사용해보기

설치