Deploy a machine to a specific bare metal host¶
Machine in a MOSK cluster requires dedicated bare metal
host for deployment. The bare metal hosts are represented by the
BareMetalHost
objects in MCC management API. All BareMetalHost
objects must be labeled upon creation with a label that will allow to
identify the host and assign it to a machine.
The labels may be unique, or applied to a group of hosts, based on similarities in their capacity, capabilities and hardware configuration, on their location, suitable role, or a combination of thereof.
In some cases, you may need to deploy a machine to a specific bare metal host. This is especially useful when some of your bare metal hosts have different hardware configuration than the rest.
To deploy a machine to a specific bare metal host:
Log in to the host where your management cluster
kubeconfig
is located and where kubectl is installed.Identify the bare metal host that you want to associate with the specific machine. For example, host
host-1
.kubectl get baremetalhost host-1 -o yaml
Add a label that will uniquely identify this host, for example, by the name of the host and machine that you want to deploy on it.
Caution
Do not remove any existing labels from the
BareMetalHost
resource.kubectl edit baremetalhost host-1
Configuration example:
kind: BareMetalHost metadata: name: host-1 namespace: myProjectName labels: kaas.mirantis.com/baremetalhost-id: host-1-worker-HW11-cad5 ...
Open the text file with the YAML definition of the
Machine
object, created in Create a machine using CLI.Add a host selector that matches the label you have added to the
BareMetalHost
object in the previous step.Example:
kind: Machine metadata: name: worker-HW11-cad5 namespace: myProjectName spec: ... providerSpec: value: apiVersion: baremetal.k8s.io/v1alpha1 kind: BareMetalMachineProviderSpec ... hostSelector: matchLabels: kaas.mirantis.com/baremetalhost-id: host-1-worker-HW11-cad5 ...
Once created, this machine will be associated with the specified bare metal host, and you can return to Create a machine using CLI.