📦 Kubernetes LimitRange 완전 정리
2026. 2. 22. 00:30ㆍk8s
LimitRange는
Namespace 안에서 생성되는 Pod/Container의
리소스 최소/최대값을 제한하는 정책 리소스
다.
즉,
- CPU 최소값
- CPU 최대값
- Memory 최소값
- Memory 최대값
- 기본(request/limit) 값
을 강제하는 역할을 한다.
📌 왜 LimitRange가 필요한가?
예를 들어 누군가 이런 Pod를 만들면:
resources:
limits:
cpu: "20"
memory: 100Gi
→ 노드를 거의 독점할 수 있다.
또는 리소스를 아예 안 쓰면:
resources: {}
→ ResourceQuota가 있어도 계산이 이상해질 수 있다.
이걸 방지하기 위해
Namespace 단위로 가이드라인을 설정하는 것이 LimitRange다.
📌 기본 구조
apiVersion: v1
kind: LimitRange
metadata:
name: example-limitrange
namespace: test
spec:
limits:
- type: Container
max:
cpu: "1"
memory: "1Gi"
min:
cpu: "100m"
memory: "128Mi"
default:
cpu: "500m"
memory: "256Mi"
defaultRequest:
cpu: "200m"
memory: "128Mi"
📊 주요 항목 설명
| 항목 | 의미 |
|---|---|
| min | 최소 허용값 |
| max | 최대 허용값 |
| default | limit 기본값 |
| defaultRequest | request 기본값 |
| type | 적용 대상 (Container, Pod 등) |
📌 동작 방식
1️⃣ 사용자가 리소스를 안 쓰고 Pod 생성
→ default 값 자동 적용
2️⃣ 사용자가 max 초과 설정
→ 생성 거부
3️⃣ 사용자가 min 미만 설정
→ 생성 거부
📌 type 종류
| type | 의미 |
|---|---|
| Container | 컨테이너 단위 |
| Pod | Pod 전체 |
| PersistentVolumeClaim | PVC 용량 제한 |
📌 예시: max 초과 시 에러
resources:
limits:
cpu: "2"
LimitRange max가 1이면:
Error: exceeds limit
Pod 생성 실패
📌 예시: 기본값 자동 적용
리소스 미지정 Pod:
apiVersion: v1
kind: Pod
metadata:
name: test
spec:
containers:
- name: nginx
image: nginx
→ default / defaultRequest 값 자동 설정됨
📌 확인 방법
kubectl get limitrange -n test
kubectl describe limitrange example-limitrange -n test
📌 LimitRange vs ResourceQuota 차이
| 구분 | LimitRange | ResourceQuota |
|---|---|---|
| 범위 | 개별 Pod/Container | Namespace 전체 |
| 목적 | 최소/최대 제한 | 총 사용량 제한 |
| 예 | 컨테이너 CPU 1core 이하 | Namespace 총 CPU 10core 이하 |
📌 함께 사용하는 구조
실무에서는 보통:
LimitRange → 개별 제한
ResourceQuota → 전체 제한두 개를 같이 사용한다.
📌 실무 권장 설정 예
✔ 최소 request 강제
✔ max 제한 설정
✔ default 자동 설정
✔ PVC 제한 포함
🎯 한 줄 정리
LimitRange는 Namespace 내 Pod/Container의
리소스 최소/최대값과 기본값을 강제하는 정책이다.
'k8s' 카테고리의 다른 글
| 🚨 kubectl delete --force --grace-period=0 완전 정리 (0) | 2026.02.22 |
|---|---|
| 🩺 Kubernetes livenessProbe & readinessProbe 정리 (0) | 2026.02.22 |
| 🔐 Kubernetes securityContext 완전 정리 (0) | 2026.02.22 |
| 🐤 Kubernetes Canary Deployment 완전 정리 (0) | 2026.02.21 |
| 🔁 Kubernetes Deployment Rollout 완전 정리 (0) | 2026.02.21 |