Bare Metal Operator#
Bare Metal Operator реализует Kubernetes API для управления хостами baremetal. Он ведет реестр доступных хостов в качестве экземпляров пользовательского определения ресурса BareMetalHost. Bare Metal Operator позволяет:
проверить сведения об оборудовании хоста и сообщить о них на соответствующем
BareMetalHost. Сведения включают информация о процессорах, оперативной памяти, дисках, сетевых адаптерах и многом другом;предоставить хостам заданный образ;
очистить содержимое диска хоста до или после подготовки.
Последовательность выполнения#
BareMetalHost представляет собой хост сервера и содержит информацию о сервере. Классификация полей по следующим широким категориям:
известные свойства сервера: такие поля, как свойства
bootMACAddress-сервера;неизвестные свойства сервера: такие поля, как
CPUиdisk, являются свойствами сервера и обнаруживаются Ironic;предоставленное пользователем: такие поля, как
image, предоставляются пользователем для определения загрузочного образа для сервера;динамические поля: такие поля, как IP, могут динамически назначаться серверу во время выполнения DHCP-сервером.
В течение жизненного цикла Bare Metal хоста некоторые из этих полей изменяются в зависимости от информации, поступающей от Ironic или других контроллеров, в то время такие поля, как MAC-адрес, не меняются.
Bare Metal Operator также может работать с Bare metal machine controller. При участии Bare metal machine controller и Ironic ниже показан упрощенный путь передачи информации и обзор ресурса BareMetalHost:
Пример манифеста
apiVersion: metal3.io/v1alpha1
kind: BareMetalHost
metadata:
name: node-0
namespace: metal3
spec:
bmc:
address: ipmi://NNN.NNN.NNN.N:6230
credentialsName: node-0-bmc-secret
bootMACAddress: 00:5a:91:3f:9a:bd
image:
checksum: http://MMM.MM.M.1/images/CENTOS_8_NODE_IMAGE_K8S_v1.22.2-raw.img.md5sum
url: http://MMM.MM.M.1/images/CENTOS_8_NODE_IMAGE_K8S_v1.22.2-raw.img
networkData:
name: test1-workers-tbwnz-networkdata
namespace: metal3
online: true
userData:
name: test1-workers-vd4gj
namespace: metal3
status:
hardware:
cpu:
arch: x86_64
count: 2
hostname: node-0
nics:
- ip: MMM.MM.M.73
mac: 00:5a:91:3f:9a:bd
name: enp1s0
ramMebibytes: 4096
storage:
- hctl: "0:0:0:0"
name: /dev/sda
serialNumber: drive-scsi0-0-0-0
sizeBytes: 53687091200
type: HDD
Где NNN.NNN.NNN.N – актуальный IP адрес одной подсети, а MMM.MM.M.1 и MMM.MM.M.73 – актуальные IP адреса другой подсети.
Ресурс BareMetalHost содержит адрес и аутентификационную информацию для сервера.
Bare Metal Operator передает эту информацию Ironic и получает взамен сведения об оборудовании - данные проверки, такие как процессор и диск сервера. Эта информация добавляется к статусу ресурса BareMetalHost. Чтобы получить такую информацию, связанную с сервером, сервер загружается с помощью служебного ramdisk. Если происходят изменения, связанные с оборудованием, BareMetalHost обновляется соответствующим образом.
После развертывания кластера инфраструктуры, подготовленного пользователем, можно использовать Bare Metal Operator (BMO) и другие компоненты metal3 для масштабирования baremetal хостов в кластере более автоматизированным способом.
Настройка Provisioning ресурса для масштабирования кластеров, подготовленных пользователем#
Создайте Provisioning пользовательский ресурс (CR), чтобы включить компоненты платформы Metal в кластере инфраструктуры, подготовленном пользователем:
Создайте
ProvisioningCR.Сохраните следующий YAML-настройку в файле
provisioning.yaml:apiVersion: metal3.io/v1alpha1 kind: Provisioning metadata: name: provisioning-configuration spec: provisioningNetwork: "Disabled" watchAllNamespaces: falseСоздайте
ProvisioningCR, выполнив следующую команду:oc create -f provisioning.yamlПример вывода:
provisioning.metal3.io/provisioning-configuration created
Проверка#
Убедитесь, что служба подготовки запущена, выполнив следующую команду:
oc get pods -n openshift-machine-api
Пример вывода:
NAME READY STATUS RESTARTS AGE
cluster-autoscaler-operator-678c476f4c-jjdn5 2/2 Running 0 5d21h
cluster-baremetal-operator-6866f7b976-gmvgh 2/2 Running 0 5d21h
control-plane-machine-set-operator-7d8566696c-bh4jz 1/1 Running 0 5d21h
ironic-proxy-64bdw 1/1 Running 0 5d21h
ironic-proxy-rbggf 1/1 Running 0 5d21h
ironic-proxy-vj54c 1/1 Running 0 5d21h
machine-api-controllers-544d6849d5-tgj9l 7/7 Running 1 (5d21h ago) 5d21h
machine-api-operator-5c4ff4b86d-6fjmq 2/2 Running 0 5d21h
metal3-6d98f84cc8-zn2mx 5/5 Running 0 5d21h
metal3-image-customization-59d745768d-bhrp7 1/1 Running 0 5d21h
Результат#
Bare Metal Operator настроен и готов к работе.