5.3. BMO を使用して、ユーザーがプロビジョニングしたクラスターで新しいホストをプロビジョニングする
Bare Metal Operator (BMO) を使用して、BareMetalHost
カスタムリソース (CR) を作成すると、ユーザーがプロビジョニングしたクラスターにベアメタルホストをプロビジョニングできます。
BMO を使用して、クラスターにベアメタルホストをプロビジョニングするには、BareMetalHost
カスタムリソースの spec.externallyProvisioned
仕様を false
に設定する必要があります。
前提条件
- ユーザーがプロビジョニングしたベアメタルクラスターを作成しました。
- ホストへのベースボード管理コントローラー (BMC) アクセス権限がある。
-
Provisioning
CR を作成して、クラスターにプロビジョニングサービスをデプロイしました。
手順
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> 1 credentialsName: "worker1-bmc" bootMACAddress: <nic1_mac_address> externallyProvisioned: false 2 customDeploy: method: install_coreos online: true userData: name: worker-user-data-managed namespace: openshift-machine-api
次のコマンドを実行して、ベアメタルホストオブジェクトを作成します。
$ oc create -f bmh.yaml
出力例
secret/worker1-bmc created baremetalhost.metal3.io/worker1 created
すべての証明書署名要求 (CSR) を承認します。
次のコマンドを実行して、ホストのプロビジョニング状態が
provisioned
であることを確認します。$ 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
出力例
NAME AGE SIGNERNAME REQUESTOR REQUESTEDDURATION CONDITION csr-gfm9f 33s kubernetes.io/kube-apiserver-client-kubelet system:serviceaccount:openshift-machine-config-o perator:node-bootstrapper <none> Pending
次のコマンドを実行して、CSR を承認します。
$ oc adm certificate approve <csr_name>
出力例
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