Drain 과 Cordon 은 모두 특정 node의 스케줄링을 비활성화하는 명령어이다
📌 Drain
- 특정 노드의 스케줄링을 비활성화 시키며 스케줄링되어 있는 모든 pod를 제거한다
- 이때 제거된 pod 들은 스케줄링이 활성화 되어있는 노드에서 다시 스케줄링되어 생성된다
kubectl drain --ignore-daemonsets <node-name>
📌 Cordon
- 특정 노드의 스케줄링되어 있는 파드는 유지하되 비활성화된 시점부터 더 이상 다른 pod가 스케줄링되지 않는다
kubectl cordon <node-name>
📌 Uncordon
- 특정의 노드를 다시 활성화하여 pod 가 스케줄링 되도록 한다
kubectl uncordon <node-name>
🔖 적용
- 특정노드를 점검하고 쿠버네티스 버전을 업그레이드 하는 등의 노드 자체를 점검하고 설정 변경을 해야할 때 유용하게 사용할 수 있다