5.6.4. ノードを正常に再起動する
ノードを再起動する前に、ノードでのデータ損失を回避するために、etcd データをバックアップすることをお勧めします。
手順
ノードの正常な再起動を実行するには:
ノードにスケジュール対象外 (unschedulable) のマークを付けます。
$ oc adm cordon <node1>ノードをドレインして、実行中のすべての Pod を削除します。
$ oc adm drain <node1> --ignore-daemonsets --delete-local-dataカスタムの Pod の Disruption Budget (停止状態の予算、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デバッグモードでノードにアクセスします。
$ 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 データのバックアップの詳細については、Backing up etcd data を参照してください。