티스토리 뷰
infra/kubernetes
[쿠버네티스] 리소스 정책 / Request, Limit, ResourceQuota, LimitRange
Redirect 2024. 2. 9. 11:16728x90
1. Request / Limit
- 파드를 어느 노드에 배포할지 스케쥴링할 때, 해당 노드에서는 충분한 자원이 파드에 할당되어야 함
- cpu/memory와 같은 컴퓨트 리소스 외에도 gpu/storage 리소스에 대한 필요한 양을 명시할 수 있음
- CPU는 ms(밀리세컨드) 단위로 지정하며 CPU 1000ms 가 1vCore(가상 CPU 코어)이며 메모리는 Mb를 사용
728x90
apiVersion: v1
kind: Pod
metadata:
name: frontend
spec:
containers:
- name: app
image: images.my-company.example/app:v4
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
- name: log-aggregator
image: images.my-company.example/log-aggregator:v6
resources:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
# metrics-server를 이용한 노드 별 리소스 모니터링
kubectl top nodes | sort -n -k 2
# metrics-server를 이용한 노드 별 리소스 모니터링
kubectl -n kube-system top pod | sort -n -k 2
2. ResourceQuota
- 만약 특정 팀에서 많은 리소스를 요구할 경우, ResourceQuota 를 통해 namespace 별 사용할 수 있는 리소스의 양을 설정하거나 컨테이너마다 사용할 수 있는 양을 지정할 수 있음
- 쿼터 오브젝트를 생성하여 특정 우선순위의 파드와 일치시키며, "low, medium, high"의 세가지 우선 순위 클래스 중 하나를 가질 수 있음
3. LimitRange
- ResourceQuota를 사용하면 네임스페이스의 리소스를 제한하고, LimitRange는 네임스페이스 내 파드의 리소스를 제한
- 사용자가 컨테이너(파드) 리소스를 너무 크게 사용하면 특정 컨테이너가 많은 리소스를 점유하는 것을 방지할 수 있음
apiVersion: v1
kind: LimitRange
metadata:
name: cpu-min-max-demo-lr
namespace: default
spec:
limits:
- max:
cpu: "800m"
min:
cpu: "200m"
type: Pod
728x90
'infra > kubernetes' 카테고리의 다른 글
[쿠버네티스] Service란? (2) | 2024.04.12 |
---|---|
[쿠버네티스] 워크로드(3) / PV, PVC (0) | 2024.02.12 |
[쿠버네티스] 워크 로드(2) / ReplicaSet, Deployment, DaemonSet, Static Pod (2) | 2024.02.08 |
[쿠버네티스] Label & Selector (0) | 2024.02.07 |
[쿠버네티스] 워크 로드(1) / Pod (0) | 2024.01.26 |
300x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크