나그네소
kubernetes Pod Resource 조절 하기 본문
POD 생성 시 Cpu, Memory 등 리소스 관련 부분을 조절 하는 방법을 알아 본다.
1. pod resource 요청 및 제한
- Resource Requests
- 파드를 실행하기 위한 최소 리소스 양을 요청
- Resource Limits
- 파드가 사용할 수 있는 최대 리소스 양을 제한
- Memory limit을 초과해서 사용되는 파드는 종료되면 다시 스케쥴링 된다.
- 리소스 관련 링크
https://kubernetes.io/docs/tasks/configure-pod-container/assign-cpu-resource/
2. Kubenetes Resouce Example
- pod-nginx-resources.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod-env
spec:
containers:
- name: nginx-container
image: nginx:1.14
ports:
- containerPort: 80
protocol: TCP
env:
- name: MYVAR
value: "testvalue"
resources:
requests:
memory: 500Mi //memory 500M
cpu: 200m // 1core - 1000m / 1 - 1core / 200m - 1/4(1 core)
limits:
memory: 1Gi //1Gbyte
cpu: 1 // 1core
참고 : requests - 요만큼의 resource가 있는 node에 pod 생성 해줘.
[예제2]nginx_resource.yaml
apiVersion: v1
kind: Pod
metadata:
name: my-nginx
spec:
containers:
- name: my-nginx
image: nginx
ports:
- containerPort: 80
protocol: TCP
resources:
requests:
memory: 500Mi
cpu: 1
[예제3]nginx_resource2.yaml
apiVersion: v1
kind: Pod
metadata:
name: my-nginx
spec:
containers:
- name: my-nginx
image: nginx
ports:
- containerPort: 80
protocol: TCP
resources:
limits:
memory: 500Mi
cpu: 1
- 확인
kuber-master:/home/son_kube/tmp] k describe pod my-nginx
Limits:
cpu: 1
memory: 500Mi
Requests:
cpu: 1
memory: 500Mi
Environment: <none>
...
: limit으로 생성 하게 되면 Requests도 Default로 생성 되는 것을 알 수 있다.
3. node core4 짜리인데 4core 요청하게 하여 어떻게 처리 되는지 확인해 보자
- nginx_resource3.yaml
apiVersion: v1
kind: Pod
metadata:
name: my-nginx
spec:
containers:
- name: my-nginx
image: nginx
ports:
- containerPort: 80
protocol: TCP
resources:
limits:
memory: 500Mi
cpu: 4
- 상태 확인
$> k get pods -o wide --watch
my-nginx 0/1 Pending 0 0s <none> <none> <none> <none>
my-nginx 0/1 Pending 0 0s <none> <none> <none> <none>
: 현재 cpu가 모자라 pending 상태인것을 알 수 있다.
'Cloud > Kubernetes' 카테고리의 다른 글
kubernetest Controller 종류 (0) | 2022.11.18 |
---|---|
Kubernetes POD 환경 변수 설정 하기 (0) | 2022.11.18 |
kubernetes Pod - static Pod (0) | 2022.11.17 |
kubernetes init container pod (0) | 2022.11.09 |
kubernetes livenessProbe (0) | 2022.11.09 |