Files
oam/knowledge base/kubernetes/drain a node.md
2023-05-24 20:41:27 +02:00

1.3 KiB

Drain a K8S cluster node

Table of contents

  1. TL;DR
  2. Further readings
  3. Sources

TL;DR

  1. mark the node as unschedulable (cordon):

    $ kubectl cordon 'kworker-rj2'
    node/kworker-rj2 cordoned
    
  2. remove pods running on the node:

    $ kubectl drain 'kworker-rj2' --grace-period=300 --ignore-daemonsets=true
    node/kworker-rj2 already cordoned
    WARNING: ignoring DaemonSet-managed Pods: kube-system/calico-node-fl8dl, kube-system/kube-proxy-95vdf
    evicting pod default/my-dep-557548758d-d2pmd
    pod/my-dep-557548758d-d2pmd evicted
    node/kworker-rj2 evicted
    
  3. do to the node what you need to do

  4. make the node available again:

    $ kubectl uncordon 'kworker-rj2'
    node/kworker-rj2 uncordoned
    

Further readings

Sources

All the references in the further readings section, plus the following: