교육/[패스트캠퍼스]Kubernetes 자격증 마스터 클래스

패스트캠퍼스 환급챌린지 15일차 : Kubernetes 자격증 마스터 클래스 : CKA/CKAD/CKS 강의 후기

esne 2025. 3. 19. 10:15

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.(https://bit.ly/4hTSJNB)


공부 인증
시작 시각, 종료 시각, 강의장 목록, 강의 화면

공부 후기

 

taint와 toleration에 대한 개념을 배웠다.

node taint : taint가 설정된 경우 동일 값의 toreration이 있는 Pod만 배치된다.
Pod toleration : toleration이 있는 Pod는 동일한 taint가 있는 node를 포함하여 모든 node에 배치된다. 필수는 아니다!
 
application을 실행해도 master에서는 실행되지 않는 이유
- master에는 중요한 컴포넌트들이 동작하고 있기 때문이기도 하고
- taints 속성 값을 보면 NoSchedule로 되어 있어서 파드가 배치되지 않도록 한다.(kubectl describe node k8s-master | grep -i taint)
- key:value, effect로 구성되어 있다.(key1=value1:NoSchedule)
======================
kubectl create deployment testdep --image=nginx --replicas=5 --dry-run=client -o yaml > testdep.yaml
vi testdep.yaml
----------------------
spec:
   tolerations: 
   - key: "node-role.kubernetes.io/master"
     operator: "Equal"
     effect: "NoSchedule"
----------------------
>> master의 taint와 testdep.yaml의 taint effect가 동일(Equal)하면 동일한 taint를 가진(master)에도 배치되고 가지지 않은(worker)에도 배치된다.
 
kubectl apply -f testdep.yaml
kubectl get pods -o wide | grep testdep
======================

 

effect 속성값과 같은 것들을 다시 한번 찾아보았다. 3가지가 있다.

NoSchedule
: Pod가 Node에 스케줄되지 않음. 기존 실행되던 Pod는 유지됨 (퇴출x)
PreferNoSchedule
: Pod가 Node에 스케줄되지 않도록 최대한 노력하지만 보장되는 건 아님
NoExecute
: 새로운 Pod는 해당 Node에 위치되지 않으며, 만약 해당 Node에 존재했던 Pod가 있다면 아래 조건에 따라 처리

 

오늘 공부를 통해 기본적으로 master node에서는 왜 배치가 되지 않는지에 대한 궁금점이 풀렸다. taint값을 변경하면 master node에도 배치 시킬 수 있다는 것을 알게되었다.