k8sでノードをメンテナンスする

k8sでノードを切り離したい時やメンテナンスしたい時のメモ

1$ kubectl get node -o wide
2NAME             STATUS                        ROLES     AGE       VERSION   EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
3kube01        Ready                         <none>    195d      v1.9.3    <none>        Ubuntu 16.04.3 LTS   4.4.0-112-generic   docker://17.12.0-ce
4kube02        Ready                         <none>    195d      v1.9.3    <none>        Ubuntu 16.04.3 LTS   4.4.0-112-generic   docker://17.12.0-ce
5kubemaster   Ready                         master    195d      v1.9.3    <none>        Ubuntu 16.04.5 LTS   4.4.0-112-generic   docker://18.6.0
6$ kubectl get pod -o wide --all-namespaces | grep kube02
7動いてるコンテナ一覧が見える

というわけでノードに配置されているコンテナを追い出す
Deployment系は多分再配置が行われるがPOD単体のものなどは多分行われないので事前に確認しておくこと

1$ kubectl drain --ignore-daemonsets --force kube02

メンテが終わったら再スケジュールするようにする

1$ kubectl uncordon kube02