1.3 KiB
1.3 KiB
kubectl drain
유지보수를 하기 위해 노드를 스케줄링 불가(unschedulable) 상태로 만들고 모든 Pod를 내보냄(evict). 관련 항목:
kubectl cordon,kubectl uncordon. 더 많은 정보: https://kubernetes.io/docs/reference/kubectl/generated/kubectl_drain/.
- 노드 드레인 수행:
kubectl drain {{노드_이름}}
- DaemonSet이 관리하는 Pod를 무시하고 노드 드레인 수행:
kubectl drain {{노드_이름}} --ignore-daemonsets
- emptyDir 볼륨을 사용하는 Pod를 삭제하면서 노드 드레인 수행 (로컬 데이터 손실 가능):
kubectl drain {{노드_이름}} --ignore-daemonsets --delete-emptydir-data
- 컨트롤러가 관리하지 않는 Pod도 강제로 내보내면서 노드 드레인 수행:
kubectl drain {{노드_이름}} --force
- Pod 종료를 위해 사용자 지정 유예 시간을 설정:
kubectl drain {{노드_이름}} --grace-period {{초}}
- 특정 라벨 선택자에 일치하는 Pod만 내보내며 노드 드레인 수행:
kubectl drain {{노드_이름}} --pod-selector {{라벨_키}}={{라벨_값}}
- 타임아웃을 지정해 노드 드레인 수행:
kubectl drain {{노드_이름}} --timeout {{기간}}
- 실제 Pod 내보내기 없이 드레인 결과를 미리 확인 (dry run):
kubectl drain {{노드_이름}} --dry-run={{none|server|client}}