K8s 어드미션 컨트롤러

1 개요[ | ]

K8s Admission Controller
k8s 어드미션 컨트롤러
  • API 서버에 내장된 플러그인 코드
  • Admission Control 메커니즘을 구체적으로 실행하는 개별 모듈
  • 인증과 인가 단계를 통과한 요청을 etcd에 저장하기 전에 가로채어 검증·수정·거부를 수행한다.
  • 클러스터의 정책 집행, 보안 제약, 자원 관리 등에 핵심적 역할을 한다.
  • 모든 Admission Controller는 API 서버 바이너리에 포함되어 있으며, API 서버 실행 시 플래그를 통해 활성화·비활성화할 수 있다.

2 동작[ | ]

  • Admission Controller는 생성(create), 수정(update), 삭제(delete) 요청에 적용된다.
  • 읽기 요청(get, list, watch)은 Admission Controller를 거치지 않는다.
  • 실행 단계는 두 가지다.
    • Mutating 단계: Mutating Admission Controller들이 실행되어 요청 객체를 수정할 수 있다.
    • Validating 단계: Validating Admission Controller들이 실행되어 요청 객체를 검증할 수 있다.
  • 어느 단계에서든 컨트롤러가 요청을 거부하면 요청은 즉시 실패한다.

3 종류[ | ]

유형 예시 설명
빌트인 NamespaceLifecycle, LimitRanger, ResourceQuota, PodSecurity API 서버에 기본 내장된 컨트롤러로, 네임스페이스 제약·리소스 제한·보안 정책 등 핵심 기능 제공
확장형 MutatingAdmissionWebhook, ValidatingAdmissionWebhook, ValidatingAdmissionPolicy 사용자가 정의 가능한 확장 포인트. 외부 웹훅 서버 호출 또는 정책 리소스 기반으로 동작

4 설정[ | ]

  • Admission Controller는 API 서버 실행 옵션으로 제어된다.

- 활성화: --enable-admission-plugins - 비활성화: --disable-admission-plugins

  • 예시:
kube-apiserver \
  --enable-admission-plugins=NamespaceLifecycle,LimitRanger \
  --disable-admission-plugins=PodNodeSelector

5 활용[ | ]

  • Pod 보안 정책 적용 (PodSecurity)
  • 리소스 쿼터(ResourceQuota) 관리
  • 컨테이너 이미지 보안 정책 (ImagePolicyWebhook)
  • 네임스페이스 및 라벨 제약 (NamespaceLifecycle, PodNodeSelector)
  • 사이드카 자동 주입 (MutatingAdmissionWebhook)

6 같이 보기[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}