5.6.4. 正常重新引导节点
在重启节点前,建议备份 etcd 数据以避免该节点上出现数据丢失。
流程
执行节点正常重启:
将节点标记为不可调度。
$ oc adm cordon <node1>
排空节点以删除所有正在运行的 pod:
$ oc adm drain <node1> --ignore-daemonsets --delete-local-data
您可能会收到与自定义 pod 中断预算(PDB)关联的 pod 不会被被驱除。
错误示例
error when evicting pods/"rails-postgresql-example-1-72v2w" -n "rails" (will retry after 5s): Cannot evict pod as it would violate the pod's disruption budget.
在本例中,再次运行 drain 命令,添加
disable-eviction
标记,这将绕过 PDB 检查:$ oc adm drain <node1> --ignore-daemonsets --delete-emptydir-data --force --disable-eviction
以 debug 模式访问节点:
$ oc debug node/<node1>
将您的根目录改为主机:
$ chroot /host
重启节点:
$ systemctl reboot
片刻,节点进入
NotReady 状态
。重启完成后,运行以下命令将节点标记为可以调度:
$ oc adm uncordon <node1>
验证节点是否已就绪:
$ oc get node <node1>
输出示例
NAME STATUS ROLES AGE VERSION <node1> Ready worker 6d22h v1.18.3+b0068a8
其他信息
有关 etcd 数据备份的详情,请参考备份 etcd 数据。