[k8s] cordon, drain 을 이용한 node 마이그레이션

Woong·2026년 1월 19일

Docker, k8s

목록 보기
28/38

노드별 instance type, NodePool, NodeGroup 조회

kubectl get nodes -L node.kubernetes.io/instance-type,eks.amazonaws.com/nodegroup,karpenter.sh/nodepool

특정 노드의 pod 조회

kubectl get pod -A -o wide --field-selector spec.nodeName=<node-name>

cordon

  • 해당 Node를 Unschedulable로 만들어 스케줄링되지 않도록
    • 이미 스케줄링되어 동작중인 Pod는 그대로 유지
kubectl cordon <node-name>

kubectl uncordon <node-name>

drain

  • Node를 cordon한 뒤, 그 노드의 Pod들을 evict 시켜 다른 Node로 재스케줄되도록 유도
    • --ignore-daemonsets : DaemonSet Pod는 대상에서 제외
  • --delete-emptydir-data : emptyDir(임시 볼륨) 데이터가 있는 Pod도 제거
kubectl drain <node-name> --ignore-daemonsets --delete-emptydir-data

0개의 댓글