diff --git a/pages/common/kubectl-drain.md b/pages/common/kubectl-drain.md new file mode 100644 index 0000000000..bffc5ae82b --- /dev/null +++ b/pages/common/kubectl-drain.md @@ -0,0 +1,37 @@ +# kubectl drain + +> Drain a node in preparation for maintenance by marking it unschedulable and evicting all pods. +> See also: `kubectl cordon`, `kubectl uncordon`. +> More information: . + +- Drain a node: + +`kubectl drain {{node_name}}` + +- Drain a node, ignoring DaemonSet-managed pods: + +`kubectl drain {{node_name}} --ignore-daemonsets` + +- Drain a node and delete pods using emptyDir volumes (local data will be lost): + +`kubectl drain {{node_name}} --ignore-daemonsets --delete-emptydir-data` + +- Drain a node, forcing eviction of pods not managed by a controller: + +`kubectl drain {{node_name}} --force` + +- Drain a node with a custom grace period for pod termination: + +`kubectl drain {{node_name}} --grace-period {{seconds}}` + +- Drain a node, evicting only pods that match a label selector: + +`kubectl drain {{node_name}} --pod-selector {{label_key}}={{label_value}}` + +- Drain a node with a timeout: + +`kubectl drain {{node_name}} --timeout {{duration}}` + +- Preview the drain operation without actually evicting pods (dry run): + +`kubectl drain {{node_name}} --dry-run={{none|server|client}}`