kubernetes Pod resource Setting
쿠버네티스에서 Pod 실행,배포시 worker node의 H/W상태를 체크.점검하여
가장 적합한 worker Node에 실행,관리시켜주는 컴포넌트는 master Node의 scheduler
이때 사용량이 많은 파드가 한 node 몰려서 동작시 효율성이 낮아진다.
이를 방지하는 몇가지 기능 중 Pod의 컨테이너 용도에 맞게 CPU,MEM 사용량을 관리해주는것을
kubernetes Pod resource setting 이라고 한다.
●Pod 리소스 단위
쿠버네티스 파드 리소스 표현단위
프로세서(CPU): M , 1 (core)
메모리(memory): Ki , Mi , Gi
●Pod 리소스 요청 및 제한
쿠버네티스 파드 리소스관리의 요청,제한은 두가지로 관리된다.컨테이너별로 리소스를 설정해줄 수 있다.
Requests (요청) : 파드가 생성될때 요청하는 최소 리소스
Limits (제한): 파드가 사용할 수 있는 최대 리소스
※Mem limits를 초과하면 파드는 재시작 된다, 너무 타이트하게 조정하는 것은 적절하지 않다.
●Pod 리소스 Requests & Limits 설정하기
Requests 설정
apiVersion: v1
kind: Pod
metadata:
name: pod-resources
spec:
containers:
- image: nginx
name: nginx-container
ports:
- containerPort: 80
protocol: TCP
resources:
requests:
memory: 500Mi
cpu: 1
Limits 설정
apiVersion: v1
kind: Pod
metadata:
name: pod-resources
spec:
containers:
- image: nginx
name: nginx-container
ports:
- containerPort: 80
protocol: TCP
resources:
limits:
memory: 500Mi
cpu: 1
※ requests 설정없이 단독으로 limits만 지정하면 requests는 동일한 용량으로 설정된다.
Requests & Limits 설정
apiVersion: v1
kind: Pod
metadata:
name: pod-resources
spec:
containers:
- image: nginx
name: nginx-container
ports:
- containerPort: 80
protocol: TCP
resources:
requests:
memory: 500Mi
cpu: 200m
limits:
memory: 500Mi
cpu: 1
※ requests 에서 요구하는 만큼 노드의 여유자원이 없다면 해당파드는 Pending 상태로 실행되지 않다가
클러스터안에 자원여유가 생기면 실행된다 ( worker node 증설 , 기존pod삭제 등등)
Node의 실제로 사용되고있는 리소스양을 확인하는 명령어로 kubectl top nodes 를사용하면 된다.
kubectl top 명령어의 경우 메트릭스 서버를 설치해야 확인할수있는데
이건 추후 포스팅예정~~!
'IT Study > Kubernetes' 카테고리의 다른 글
kubernetes Multi-Container Pod & 파드 디자인 패턴 (0) | 2023.01.16 |
---|---|
kubernetes pod 환경변수 설정 (0) | 2023.01.16 |
kubernetes static pod & kubelet (0) | 2023.01.12 |
kubernetes infra container pause (0) | 2023.01.12 |
kubernetes init container (0) | 2023.01.11 |