https://kubernetes.io/ko/docs/concepts/configuration/manage-resources-containers/
pods를 지정할 때, 컨테이너에 필요한 각 리소스의 양을 선택적으로 지정할 수 있다.
지정할 가장 일반적인 리소스는 CPU와 메모리(RAM) 그리고 다른 것들이 있다.
파드에서 컨테이너에 대한 리소스 요청(request) 을 지정하면,
kube-scheduler는 이 정보를 사용하여 파드가 배치될 노드를 결정한다.
컨테이너에 대한 리소스 제한(limit) 을 지정하면, kubelet은 실행 중인 컨테이너가
설정한 제한보다 많은 리소스를 사용할 수 없도록 해당 제한을 적용한다.
또한 kubelet은 컨테이너가 사용할 수 있도록 해당 시스템 리소스의 최소 요청량을 예약한다.
master node에서 진행
cat > pod-nginx-resources.yaml
다음과 같이 yaml에 컨테이너 실행 시 리소스에 대한 요청(requests)과 제한(limits)를 설정할 수 있다.
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- name: nginx
image: nginx:1.14
ports:
- containerPort: 80
- containerPort: 443
protocol: TCP
resources:
requests:
cpu: 200m #200mili core는 ⅕ # 1 core = 1000mili core
memory: 250Mi # MiB
limits:
cpu: 1 # 1000mili core
memory: 500Mi
k create -f pod-nginx-resources.yaml
k describe pods nginx
다음의 아랫부분과 같이 yaml에 설정했던 대로 리소스가 할당된 것을 알 수 있다.
k delete pods nginx
'Kubernetes' 카테고리의 다른 글
스케쥴링 (0) | 2023.01.02 |
---|---|
볼륨 (0) | 2022.12.29 |
스태틱(static) pods (1) | 2022.12.29 |
init container (초기화 컨테이너) (0) | 2022.12.28 |
kubernetes Probe (0) | 2022.12.27 |