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