Kubernetes 네임스페이스 LimitRange 구성 점검

네임스페이스의 개별 리소스에 맞는 자원 기준을 정의하세요.

설명

LimitRange는 네임스페이스 안의 Pod, 컨테이너, PVC에 대해 구성한 자원 요청·제한 범위를 검사하며, 컨테이너에 기본 요청값과 제한값을 적용할 수도 있습니다. 정책이 없으면 팀의 자원 기준을 일관되게 적용하기 어려울 수 있지만, 개별 워크로드 설정이나 다른 admission 정책도 확인해야 합니다. 네임스페이스 전체 사용량을 제한하는 ResourceQuota와는 역할이 다릅니다.

잠재적 영향

  • 과도한 자원 요청이나 누락된 설정이 운영 환경에 반영될 수 있습니다.
  • 너무 엄격하거나 서로 맞지 않는 기준은 정상적인 파드 생성을 막을 수 있습니다.

해결 방법

  • 네임스페이스별 워크로드 요구에 맞춰 LimitRange의 대상 유형과 최소·최대값, 컨테이너 기본 request·limit을 구성하세요. CPU, 메모리와 PVC 스토리지에 필요한 제약을 각각 검토하세요.
  • 실제 admission 적용값과 정상 워크로드의 생성 여부를 시험하세요. 기존 파드는 정책 추가로 자동 변경되지 않으므로 별도로 확인하고, 전체 사용량 제한이 필요하면 ResourceQuota도 구성하세요.

예시

mypod 네임스페이스가 있어야 하며 이미지 주소는 실제 검증된 이미지로 바꾸세요. CPU 200m–800m는 예시 범위입니다. 기본 request·limit의 실제 적용값도 확인하세요.

변경 전

yaml
apiVersion: v1
kind: Pod
metadata:
  name: frontend
  namespace: mypod
spec:
  containers:
    - name: app
      image: images.my-company.example/app:v4

Pod에 자원 값이나 LimitRange가 표시되어 있지 않습니다. 네임스페이스의 기존 정책도 확인해야 합니다.

변경 후

yaml
apiVersion: v1
kind: LimitRange
metadata:
  name: cpu-min-max-demo-lr
  namespace: mypod
spec:
  limits:
    - type: Container
      min:
        cpu: "200m"
      max:
        cpu: "800m"
---
apiVersion: v1
kind: Pod
metadata:
  name: frontend
  namespace: mypod
spec:
  containers:
    - name: app
      image: images.my-company.example/app:v4

컨테이너 CPU 범위만 정하는 LimitRange를 추가합니다. 메모리나 PVC 스토리지 제약까지 설정하는 예시는 아닙니다.

참조