Подготовка новых хостов в кластере, подготовленном пользователем, с помощью BMO#

BMO может быть использован для подготовки baremetal-хостов в кластере, подготовленном пользователем, путем создания пользовательского ресурса BareMetalHost.

Чтобы предоставить кластеру baremetal-хосты с помощью BMO, установите для спецификации spec.externallyProvisioned в пользовательском ресурсе BareMetalHost значение false.

Предусловия#

  • создан Provisioning кластер, подготовленный пользователем;

  • получен доступ к контроллеру управления базовой платой (BMC) к узлам;

  • развернута служба подготовки в кластере, создав сертификат подготовки.

Последовательность выполнения#

  1. Создайте Secret CR и BareMetalHost CR.

    Сохраните следующий YAML в файле bmh.yaml:

    Пример манифеста
    ---
    apiVersion: v1
    kind: Secret
    metadata:
      name: worker1-bmc
      namespace: openshift-machine-api
    type: Opaque
    data:
      username: <base64_of_uid>
      password: <base64_of_pwd>
    ---
    apiVersion: metal3.io/v1alpha1
    kind: BareMetalHost
    metadata:
      name: worker1
      namespace: openshift-machine-api
    spec:
      bmc:
        address: <protocol>://<bmc_url>
        credentialsName: "worker1-bmc"
      bootMACAddress: <nic1_mac_address>
      externallyProvisioned: false
      customDeploy:
        method: install_coreos
      online: true
      userData:
        name: worker-user-data-managed
        namespace: openshift-machine-api
    
  2. Создайте baremetal-хост, выполнив следующую команду:

    oc create -f bmh.yaml
    

    Пример вывода:

    secret/worker1-bmc created
    baremetalhost.metal3.io/worker1 created
    
  3. Утвердите все запросы на подписание сертификатов (CSR).

    • Убедитесь, что состояние подготовки хоста подготовлено, выполнив следующую команду:

      oc get bmh -A
      

      Пример вывода:

      NAMESPACE               NAME          STATE                    CONSUMER   ONLINE   ERROR   AGE
      openshift-machine-api   controller1   externally provisioned              true             5m25s
      openshift-machine-api   worker1       provisioned                         true             4m45s
      
    • Получите список ожидающих CSR, выполнив следующую команду:

      oc get csr
      

      Пример вывода:

      certificatesigningrequest.certificates.k8s.io/<csr_name> approved
      

Верификация#

Убедитесь, что узел готов, выполнив следующую команду:

oc get nodes

Пример вывода:

NAME        STATUS   ROLES           AGE     VERSION
app1        Ready    worker          47s     v1.24.0+dc5a2fd
controller1 Ready    master,worker   2d22h   v1.24.0+dc5a2fd

Результат#

Узел готов к работе.