정의 및 작동 원리
Admission Webhook은 HTTP 콜백으로, Kubernetes API 서버가 리소스 생성, 수정, 삭제 요청을 인증·승인 단계 이후, 저장소에 기록되기 전에 받아서 처리하고 응답을 반환합니다. API 서버는 요청 데이터를 JSON 직렬화된 AdmissionReview 객체로 인코딩하여 웹훅 엔드포인트로 전달합니다.
두 가지 주요 유형
뮤테이팅 웹훅(Mutating Admission Webhook)은 리소스를 생성 또는 수정할 때 저장소에 기록되기 전에 객체를 변조할 수 있습니다. 예를 들어, 사용자가 지정하지 않은 필드에 기본값을 주입하거나 사이드카 컨테이너를 삽입할 수 있습니다. 검증 웹훅(Validating Admission Webhook)은 스키마 기반 검증보다 복잡한 정책을 적용하여 객체를 검증하며, 변조는 수행하지 않습니다.
실무 주의사항
뮤테이팅 웹훅은 순차적으로 호출되므로 추가 지연이 발생하며, 웹훅 간 충돌을 방지하기 위해 멱등성을 보장해야 합니다. 또한 웹훅이 자신의 배포를 차단하는 상황을 피하기 위해 네임스페이스 셀렉터로 자신이 실행되는 네임스페이스를 제외해야 합니다. 클러스터 업그레이드 후 API 변경으로 인한 동작 변화를 방지하려면 스테이징 환경에서 충분한 테스트가 필수입니다.