반응형
여태 실습을 해왔을 때 1개의 pod에 리소스의 제한을 걸어 두지 않고 생성하고 실행하였다.
하나의 컴퓨트에는 사용할 수 있는 리소스가 제한돼 있는데 (ex cpu 2 core memory 4GB) 각각 의 Pod에 리소스 제한을 걸어두지 않는다면 그 1개의 pod가 컴퓨터의 리소스를 전부 잡아먹고 사용할 수도 있기 때문이다.
1개의 Pod 때문에 다른 필수 Pod가 실행되지 못할 수 있기 때문에 리소스를 제한시켜줘야 한다.
Resource Requests
: Pod를 실행하기 위한 최소 리소스 양을 요청
Resource Limits
Pod가 사용할 수 있는 최대 리소스 양을 제한
Memory limit을 초과해서 사용되는 파드는 종료되며 다시 스케쥴링 된다.
실습
Container Resource 설정 예시
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- name: nginx
image: nginx:1.14
livenessProbe:
httpGet:
path: /
port: 80
resources:
requests:
cpu: 200m
memory: 250Mi
limits:
cpu: 1
memory: 500Mi
resource는 각 컨테이너마다 설정을 해줘야 한다. 현재는 싱글 컨테이너이기 때문에 한번 들어갔지만 멀티 컨테이너일 경우 각 컨테이너에다 설정을 해줘야 한다.
requests 방식으로 cpu 200m 여유공간에 메모리 250mi를 최소조건으로 요청한다(스케쥴러에) 그렇게 할당된 Pod는
최대 cpu 1코어 메모리 500Mi를 초과해서 사용할 시 종료가 되고 다시 스케쥴링 된다.
쿠버네티스 에서 1MiB = 1024 Kib 1core = 1000m
위의 yaml 파일을 사용하여 pod를 생성한 후 describe 옵션으로 상세 스펙을 확인하니.
리소스 리밋과 요청사항의 정보가 명시 돼 있다.
반응형
'Kubernetes' 카테고리의 다른 글
Controller - ReplicationController란 (0) | 2021.07.16 |
---|---|
Pod에 환경변수 설정하기/Pod 실행 패턴 (0) | 2021.07.15 |
init 컨테이너 & infra 컨테이너 / static Pod (0) | 2021.07.14 |
쿠버네티스 - livenessProbe (0) | 2021.07.14 |
쿠버네티스 아키텍처 - namespace (0) | 2021.07.14 |