나그네소

kubernetes Pod Resource 조절 하기 본문

Cloud/Kubernetes

kubernetes Pod Resource 조절 하기

나그네소티 2022. 11. 17. 21:40

POD 생성 시 Cpu, Memory 등 리소스 관련 부분을 조절 하는 방법을 알아 본다. 

 

1. pod 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