정책

정책 (Policies)

정책을 사용해 보안과 모범 사례를 관리할 수 있어요. Kubernetes 정책은 다른 설정이나 런타임 동작을 관리하는 설정입니다. Kubernetes는 아래에서 설명하는 여러 형태의 정책을 제공합니다.

API 객체를 사용해 정책 적용하기 (Apply policies using API objects)

일부 API 객체는 정책으로 동작합니다. 몇 가지 예를 들어볼게요.

  • NetworkPolicy는 워크로드의 인그레스/이그레스 트래픽을 제한하는 데 사용할 수 있어요.
  • LimitRange는 서로 다른 객체 종류에 걸쳐 리소스 할당 제약을 관리합니다.
  • ResourceQuota는 네임스페이스 단위로 리소스 소비를 제한해요.

어드미션 컨트롤러로 정책 적용하기 (Apply policies using admission controllers)

어드미션 컨트롤러는 API 서버 안에서 실행되며 API 요청을 검증하거나 변형할 수 있어요. 일부 어드미션 컨트롤러는 정책을 적용하는 역할을 합니다. 예를 들어 AlwaysPullImages 어드미션 컨트롤러는 새 Pod를 수정해 이미지 풀 정책을 Always로 설정해요.

ValidatingAdmissionPolicy로 정책 적용하기 (Apply policies using ValidatingAdmissionPolicy)

검증 어드미션 정책은 CEL(Common Expression Language)을 사용해 API 서버에서 설정 가능한 검증 체크를 실행할 수 있게 해줍니다. 예를 들어 ValidatingAdmissionPolicy를 사용해 latest 이미지 태그 사용을 금지할 수 있어요.

ValidatingAdmissionPolicy는 API 요청에 대해 동작하며, 비준수 설정을 차단하거나 감사(audit)하거나 사용자에게 경고하는 데 사용할 수 있습니다. ValidatingAdmissionPolicy API에 대한 자세한 내용과 예시는 전용 섹션(Validating Admission Policy)에 문서화되어 있어요.

동적 어드미션 컨트롤로 정책 적용하기 (Apply policies using dynamic admission control)

동적 어드미션 컨트롤러는 API 요청에 정책을 적용하고 다른 정책 기반 워크플로를 트리거하는 데 사용할 수 있어요. 동적 어드미션 컨트롤러는 다른 클러스터 리소스나 외부 데이터를 검색해야 하는 복잡한 체크를 수행할 수 있습니다.

Kubelet 설정으로 정책 적용하기 (Apply policies using Kubelet configurations)

Kubernetes는 각 워커 노드의 Kubelet을 설정할 수 있게 해줍니다. 일부 Kubelet 설정은 정책으로 동작해요.

  • 프로세스 ID 제한과 예약(Process ID limits and reservations)은 할당 가능한 PIDs를 제한하고 예약하는 데 사용됩니다.
  • 노드 리소스 매니저(Node Resource Managers)는 지연 시간에 민감하거나 높은 처리량이 필요한 워크로드를 위해 컴퓨트/메모리/디바이스 리소스를 관리해요.

더 알아보기

  • 네트워크 정책(NetworkPolicy)
  • 리소스 쿼터(ResourceQuota)
  • 리밋 레인지(LimitRange)
  • 어드미션 컨트롤러