본문 바로가기
INFRA/DevOps

[K8S] Node Schedule

by BTC_민물공원 2023. 7. 6.

베하~! BTC_녹차공원 팀의 민물공원 입니다.

이번주는 Node Schedule 정책에 대해 알아보겠습니다!

 

kubectl 은 노드의 pod-scheduling 정책을 손쉽게 변경할 수 있도록 다양한 명령어를 제공해줘요.

drain, cordon, uncordon 을 지원해주는데 각각 알아보아요

 

 

cordon


cordon은 지정된 node에 더 이상 pod들이 스케줄링되지 않도록 해요. 

위에서 볼 수 있듯이 node01은 cordon 명령어를 통해 SchedulingDisabled 상태가 되었어요.

test3라는 새로운 pod를 생성하니 node01이 아닌 controlplane에 새로운 pod가 스케줄링 되었답니다.

 

 

drain


drain은 지정된 node에 존재하는 모든 pod를 제거하여 노드를 비우고, pod들을 다른 노드에 새롭게 스케줄링하는 명령어예요. kuberctl drain이 적용된 node는 SchedulingDisabled 상태가 되어, 이후 새롭게 생성되는 pod들도 해당 node에 생성되지 않게됩니다.

drain 명령어를 통해 node01에 스케줄링 되어있는 pod들이 controlplane으로 이동되었답니다.

 

 

uncordon


cordon 혹은 drain 이 적용된 node들은 SchedulingDisabled 상태가 되어 더 이상 pod들이 해당 node에 스케줄링 되지 않아요. uncordon은 이러한 node에 대해 SchedulingDisabled 상태를 제거하여 pod들이 해당 node에 정상적으로 스케줄링 되도록 복구하는 명령어랍니다.

uncordon을 통해 SchedulingDisabled 상태가 된 node01을 정상적으로 스케줄링 되도록 설정하였고, 새로 생성된 pod가 정상적으로 node01에 스케줄링 된것을 확인했어요.

 

 

오늘은 간단히 cordon, drain, uncordon 명령어를 알아보았어요!

이제는 세가지 명령어에 대해 차이점을 알겠죠?!

 

이상 BTC_녹차공원 팀이였습니다!

베빠~!

'INFRA > DevOps' 카테고리의 다른 글

[K8S] NetworkPolicy  (0) 2023.08.01
[K8S] Node Upgrade  (0) 2023.07.20
[K8S] role & rolebinding  (0) 2023.06.18
[k8s] Kubernetes AutoScaling  (0) 2023.05.02
[K8s]DNS  (0) 2023.04.17

댓글