apiVersion: kubevirt.io/v1alpha1
kind: NodeMaintenance
metadata:
name: node02-maintenance
spec:
nodeName: node02
reason: "Replacing node02"
Placing a node into maintenance marks the node as unschedulable and drains all
the virtual machines and pods from it. Virtual machine instances that have a
LiveMigrate
eviction strategy are live migrated to another node without loss
of service. This eviction strategy is configured by default in virtual machine
created from common templates but must be configured manually for custom
virtual machines.
Virtual machine instances without an eviction strategy will be deleted on the node and recreated on another node.
Virtual machines must have a PersistentVolumeClaim (PVC) with a shared ReadWriteMany (RWX) access mode to be live migrated. |
Place a node into maintenance from either the web console or the CLI.
Set a node to maintenance mode using the Options menu found on each node in the Compute → Nodes list, or using the Actions control of the Node Details screen.
In the container-native virtualization console, click Compute → Nodes.
You can set the node to maintenance from this screen, which makes it easier to perform actions on multiple nodes in the one screen or from the Node Details screen where you can view comprehensive details of the selected node:
Click the Options menu at the end of the node and select Start Maintenance.
Click the node name to open the Node Details screen and click Actions → Start Maintenance.
Click Start Maintenance in the confirmation window.
The node will live migrate virtual machine instances that have the
liveMigration
eviction strategy, and the node is no longer schedulable. All
other pods and virtual machines on the node are deleted and recreated on another node.
Set a node to maintenance mode by creating a NodeMaintenance
Custom Resource
(CR) object that references the node name and the reason for setting it to
maintenance mode.
Create the node maintenance CR configuration. This example uses a CR that is
called node02-maintenance.yaml
:
apiVersion: kubevirt.io/v1alpha1
kind: NodeMaintenance
metadata:
name: node02-maintenance
spec:
nodeName: node02
reason: "Replacing node02"
Create the NodeMaintenance
object in the cluster:
$ oc apply -f <node02-maintenance.yaml>
The node live migrates virtual machine instances that have the
liveMigration
eviction strategy, and taint the node so that it is no longer
schedulable. All other pods and virtual machines on the node are deleted and
recreated on another node.