본문 바로가기
IT 잡지식/DevOps

[CKA] KodeKloud -Resource Limits

by 쯀리♥️ 2024. 6. 9.

안녕하세요, 쯀리입니다.

오늘은 Kubernetes에서 필요한 리소스 자원들에 대해 알아볼게요. 

https://kubernetes.io/ko/docs/concepts/configuration/manage-resources-containers/

 

파드 및 컨테이너 리소스 관리

파드를 지정할 때, 컨테이너에 필요한 각 리소스의 양을 선택적으로 지정할 수 있다. 지정할 가장 일반적인 리소스는 CPU와 메모리(RAM) 그리고 다른 것들이 있다. 파드에서 컨테이너에 대한 리소

kubernetes.io

 


 

필요 Resource와 Limits

우리가 지난 시간동안 배웠듯이
쿠버네티스에 어떠한 pod를 배포할때, 스케쥴러가 자동으로 어떤 노드에 배포될지 지정을 해줍니다.
스케쥴러는 하나의 pod의 필요한 리소스 양과 Node가 핸들링 할 수 있는 용량에 따라서
최고의 node에 배포를 하게 되어있습니다.

만약 모든 node의 cpu가 가득찼다면 어떤 에러가 날까요? 
바로 Insufficient CPU에러가 발생합니다. 

이런식으로 리소스를 yaml로 관리할 수 있는데, 오늘 예시를 통해서 알아보도록 합시다.


Quiz.

1. A pod called rabbit is deployed. Identify the CPU requirements set on the Pod.

kubectl get pods
kubectl describe pod rabbit

CPU가 2개까지 사용가능하지만 1개만 사용되도록 되어있네요.

2. Delete the rabbit Pod.

kubectl delete pod rabbit


3. Another pod called elephant has been deployed in the default namespace. It fails to get to a running state. Inspect this pod and identify theReasonwhy it is not running.
OOMKilled
라는 상태가 출력되었습니다.

 

 

4. The status OOMKilled indicates that it is failing because the pod ran out of memory. Identify the memory limit set on the POD.

kubectl describe pod elephant

 

5. The elephant pod runs a process that consumes 15Mi of memory. Increase the limit of the elephant pod to 20Mi.
Delete and recreate the pod if required. Do not modify anything other than the required fields.

Pod Name: elephant
Image Name: polinux/stress
Memory Limit: 20Mi
 
k edit po elephant
 
yaml을 수정해주겠습니다. Limit부분을 20Mi로 변경해줍니다.
 

wq 라고 입력하면 아래와 같은 상황을 마주칩니다.
실행중인 pod를 변경할 수없다는 안내 상항이 나오는데요.

저장을 하고 나오면 /tmp아래에 변경된 yaml파일이 생성된다는 것을 알수 있고 이 yaml을 통해 replace할 수 있습니다. 

cd /tmp/<수정으로 생성된 yaml파일>
k replace --force -f <해당 yaml>

 

 

7. Inspect the status of POD. Make sure it's running

 

8. Delete the elephant Pod.

k delete pod elephant

 

 

오늘은 K8s에서 각 pod당 리소스를 관리하고 그에 따라 배포하는 방법을 배워 보았습니다. 
다음시간엔 Deamon에 관해 알아보도록 하겠습니다. 

다음에 만나요!!

 


참조

 Udemy Labs - Certified Kubernetes Administrator with Practice Tests

'IT 잡지식 > DevOps' 카테고리의 다른 글

[CKA] KodeKloud - Static PODs  (0) 2024.06.23
[CKA] KodeKloud - DaemonSets  (0) 2024.06.09
[CKA] KodeKloud -Node Affinity  (0) 2024.06.08
[CKA] KodeKloud -Taints and Tolerations  (0) 2024.06.08
[CKA] KodeKloud - Labels and Selectors  (0) 2024.06.03