
한 마디로 리밋 레인지(LimitRange) 는
“네임스페이스 안의 각 파드나 컨테이너별 자원 사용 한도와 기본값을 지정하는 제도”이다.
이전 게시물 : 리소스 쿼터(ResourceQuota)에서
리소스 쿼터가 “네임스페이스 전체 팀 단위로 예산(총량)을 정하는 것”이었다면,
리밋 레인지는 그 예산 안에서 “개별 파드나 컨테이너가 얼마까지 쓸 수 있는지 제한하는 것”이다.
파일명: limit-range.yaml
apiVersion: v1
kind: LimitRange
metadata:
name: dev1-limit
namespace: dev1
spec:
limits:
- type: Container
default:
cpu: "1"
memory: 512Mi
defaultRequest:
cpu: "0.5"
memory: 256Mi
max:
cpu: "2"
memory: 1Gi
min:
cpu: "0.1"
memory: 128Mi
| 필드 | 설명 |
|---|---|
| type: Container | 컨테이너 단위로 제한 설정 |
| default | 컨테이너에 명시된 limit이 없을 때 자동으로 적용되는 기본값 |
| defaultRequest | 컨테이너에 request가 없을 때 자동으로 설정되는 기본 요청값 |
| max | 컨테이너가 사용할 수 있는 최대치 |
| min | 컨테이너가 반드시 가져야 하는 최소 자원량 |
리밋 레인지의 특징 중 하나는 생성될 때 Pod YAML에서 resources를 안 써도
이 LimitRange가 자동으로 “기본 CPU, 메모리”를 채워준다는 것이다.

kubectl get limitrange -n dev1
위 명령어로 리밋 레인지가 생성되었는지 확인할 수 있지만, 상세 확인으 하기 위해 describe 명령어를 사용한다.
kubectl describe limitrange dev1-limit -n dev1

이제 dev1 네임스페이스에 새로운 파드를 만들면
별도로 limit/request를 안 줘도 위 값들이 자동으로 채워진다.
파일명: pod-limit-test.yaml
apiVersion: v1
kind: Pod
metadata:
name: limit-test
namespace: dev1
spec:
containers:
- name: nginx
image: nginx
별도로 resources:를 설정하지 않았지만,
파드 생성 후 describe pod 명령으로 확인해보면
LimitRange가 자동으로 적용된 것을 확인할 수 있다.

| 항목 | 설명 | 비유 |
|---|---|---|
| LimitRange | 파드/컨테이너별 자원 사용 기본값 및 한도 | 팀원의 개인별 예산 한도 |
| min | 최소 자원 사용량 | “최소한 이 정도는 써야 함” |
| max | 최대 자원 한도 | “이 이상은 안 됨” |
| defaultRequest | 명시 안 했을 때 자동 요청값 | “자동 기본 월급” |
| default | 명시 안 했을 때 자동 limit값 | “자동 상한선” |
리밋 레인지(LimitRange)는
파드나 컨테이너가 사용할 수 있는 최소/최대 자원을 정의하고,
리소스 요청(request)과 제한(limit)을 지정하지 않은 경우
자동으로 기본값을 설정해주는 정책이다.
또한, ResourceQuota가 팀 단위 예산이라면,
LimitRange는 개인별 사용 한도다.
참고자료:
[쿠버네티스 공식 홈페이지 - Limit Ranges]
https://kubernetes.io/docs/concepts/policy/limit-range/