Restart a bare metal host¶
You can use the Container Cloud API to restart a bare metal host in Mirantis OpenStack for Kubernetes clusters. The workflow of the host restart is as follows:
Setting the maintenance mode on the cluster that contains the target node.
Setting the maintenance mode on the target node for OpenStack and Container Cloud to drain it from workloads. No new workloads will be provisioned to a host in the maintenance mode.
Using the
BareMetalHost
object to initiate a hard reboot of the bare metal server that hosts the node.
To restart a bare metal host:
Using
kubeconfig
of the Container Cloud management cluster, access the Container Cloud API and open theCluster
object for editing:kubectl -n <project-name> edit cluster <cluster-name>
Add the following field to the
spec
section to set the maintenance mode on the cluster:spec: providerSpec: value: maintenance: true
Verify that the
Cluster
object status forMaintenance
isready: true
:kubectl -n <project-name> get cluster <cluster-name>
Example of a negative system response:
... status: providerStatus: conditions: ... - message: 'Maintenance state of the cluster is false, expected: # true. Waiting for the cluster to enter the maintenance state' ready: false type: Maintenance ... maintenance: true
Open the required
Machine
object for editing:kubectl -n <project-name> edit machine <machine-name>
In the
spec:providerSpec
section, set the maintenance mode on the node:spec: providerSpec: value: maintenance: true
In the
annotations
section of theMachine
definition, capture the bare metal host name connected to the machine:metadata: annotations: metal3.io/BareMetalHost: <project-name>/<host-name>
Verify that the
Machine
maintenance status istrue
:status: maintenance: true
Important
Proceed with the node maintenance only after the machine switches to the maintenance mode.
Open the required
BareMetalHost
object for editing using the previously captured<host-name>
:kubectl -n <project-name> edit baremetalhost <host-name>
In the
spec
section, set theonline
field tofalse
:spec: online: false
Wait for the host to shut down.
In the
spec
section, set theonline
field totrue
:spec: online: true
Restore the machine from the maintenance mode by deleting the previously set
maintenance: true
line from theMachine
object:kubectl -n <project-name> edit machine <machine-name>
Restore the cluster from the maintenance mode by deleting the previously set
maintenance: true
line from theCluster
object.kubectl -n <project-name> edit cluster <cluster-name>