| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- helm
- Prometheus install
- 딥레이서
- 딥레이서 보상함수
- LoadBalancer Controller
- 메탈LB
- github action 사용법
- 로드밸런서 컨트롤러
- blue-green
- Firelens
- 그라파나 대시보드
- Kubernetes
- Solution Architecture
- SAA 합격 후기
- terraform
- AWS 딥레이서
- grafana on kubernetes
- kubernetes 동작 원리
- EKS 클러스터
- headless service
- Aurora cluster
- jenkins
- EFS CSI Driver
- 깃허브 액션
- 그라파나 시각화
- 쿠버네티스
- livenessPorbe
- 쿠버네티스 컴포넌트
- Kubernets on Jenkins
- 솔데스크
Archives
mingming
Kubernetes Pod Resoure 할당하기 본문
Requests & Limits
Resource Requests
- Pod를 실행하기 위한 최소 리소스 양 요청
Resource Limits
- Pod가 사용할 수 있는 최대 리소스 양을 제한
- Memory limit을 초과해서 사용되는 파드는 종료되며 다시 스케줄링 된다.
Example
pod-nginx-requests.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod-resource
spec:
containers:
- name: nginx-container
image: nginx:1.14
ports:
- containerPort: 80
protocol: TCP
resources:
requests:
cpu: 200m
memory: 250Mi
매니페스트 배포
kubectl apply -f pod-nginx-requests
requests가 잘 적용 되어 있는지 확인
kubectl describe pods nginx-pod-resource

pod-nginx-limits.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod-resource
spec:
containers:
- name: nginx-container
image: nginx:1.14
ports:
- containerPort: 80
protocol: TCP
resources:
limits:
cpu: 1
memory: 500Mi
메모리 사이즈 표현 방식 : 1Mi = 1024Ki
CPU : Core 수로 카운트 1 core = 1000m
매니패스트 배포
kubectl apply -f pod-nginx-limits.yaml
limits 항목이 적용되어있는지 확인
kubectl describe describe pods nginx-pod-resource
limits를 설정하면 자동으로 같은 값의 request가 할당된다.

pod-nginx-pending.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod-resource
spec:
containers:
- name: nginx-container
image: nginx:1.14
ports:
- containerPort: 80
protocol: TCP
resources:
requests:
cpu: 3
memory: 500Mi
kubectl descirbe pods nginx-pod-resource
Pod에 서버에서 감당할 수 없는 리소스를 할당해주면 Pod가 스케줄링 되지 못하고 Pending 상태에 빠지게 됩니다.

FIN
Pod 에 리소스 할당하는 방법을 알아보았습니다. 최소 사양을 규정하는 requests와 최대 사양을 규정하는 limits를 이용해 효율적으로 리소르를 관리할 수 있습니다. 또한 Pod가 무한정으로 많은 리소스를 사용하면 클러스터 전체가 장애상태에 빠질 수 있습니다. 리소스 제한을 설정하여 이러한 장애를 예방하고, 리소스 사용이 너무 높은 Pod를 식별하고 대응할 수 있습니다.
'kubernetes' 카테고리의 다른 글
| kubernetes controller - Replication Controller (1) | 2023.09.03 |
|---|---|
| Vagrant로 kubernetes Cluster 구축하기 (0) | 2023.09.01 |
| EKS Prometheus & Grafana (1) | 2023.08.31 |
| kubernetes static Pod (2) | 2023.08.30 |
| kubernets Metal LB 설치하기 (1) | 2023.08.30 |