10.5. Bare Metal Operator を使用したユーザープロビジョニングクラスターのスケーリング
user-provisioned infrastructure クラスターをデプロイした後、Bare Metal Operator (BMO) およびその他の metal3 コンポーネントを使用して、クラスター内のベアメタルホストをスケーリングできます。このアプローチは、ユーザーがプロビジョニングしたクラスターをより自動化された方法でスケーリングするために役立ちます。
10.5.1. Bare Metal Operator を使用したユーザープロビジョニングクラスターのスケーリングについて リンクのコピーリンクがクリップボードにコピーされました!
Bare Metal Operator (BMO) およびその他の metal3 コンポーネントを使用して、user-provisioned infrastructure クラスターをスケーリングできます。user-provisioned infrastructure のインストールには、Machine API Operator が含まれていません。Machine API Operator は通常、クラスター内のベアメタルホストのライフサイクルを管理します。ただし、マシン API オペレーターを必要とせずに、BMO およびその他の metal3 コンポーネントを使用して、ユーザーがプロビジョニングしたクラスター内のノードをスケーリングすることができます。
10.5.1.1. ユーザーがプロビジョニングしたクラスターをスケーリングするための前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- user-provisioned infrastructure クラスターをベアメタルにインストールしました。
- ホストへのベースボード管理コントローラー (BMC) アクセス権限がある。
10.5.1.2. ユーザーがプロビジョニングしたクラスターのスケーリングに関する制限事項 リンクのコピーリンクがクリップボードにコピーされました!
Bare Metal Operator (BMO) では、プロビジョニングネットワークを使用して、user-provisioned infrastructure クラスターをスケーリングすることはできません。
-
したがって、仮想メディアネットワークの起動をサポートするベアメタルホストドライバー (
redfish-virtualmediaやidrac-virtualmediaなど) のみを使用できます。
-
したがって、仮想メディアネットワークの起動をサポートするベアメタルホストドライバー (
-
BMO を使用して、user-provisioned infrastructure クラスター内の
MachineSetオブジェクトをスケーリングすることはできません。
10.5.2. ユーザーがプロビジョニングしたクラスターをスケーリングするためのプロビジョニングリソースの設定 リンクのコピーリンクがクリップボードにコピーされました!
Provisioning カスタムリソース (CR) を作成して、user-provisioned infrastructure クラスターで Metal プラットフォームコンポーネントを有効にします。
前提条件
- user-provisioned infrastructure クラスターをベアメタルにインストールしました。
手順
ProvisioningCR を作成します。次の YAML を
provisioning.yamlファイルに保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記OpenShift Container Platform 4.14 は、Bare Metal Operator を使用して、ユーザーがプロビジョニングしたクラスターをスケーリングする場合、プロビジョニングネットワークの有効化をサポートしません。
次のコマンドを実行して、
ProvisioningCR を作成します。oc create -f provisioning.yaml
$ oc create -f provisioning.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
provisioning.metal3.io/provisioning-configuration created
provisioning.metal3.io/provisioning-configuration createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、プロビジョニングサービスが実行されていることを確認します。
oc get pods -n openshift-machine-api
$ oc get pods -n openshift-machine-apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.5.3. BMO を使用して、ユーザーがプロビジョニングしたクラスターで新しいホストをプロビジョニングする リンクのコピーリンクがクリップボードにコピーされました!
Bare Metal Operator (BMO) を使用して、BareMetalHost カスタムリソース (CR) を作成すると、ユーザーがプロビジョニングしたクラスターにベアメタルホストをプロビジョニングできます。
BMO を使用して、クラスターにベアメタルホストをプロビジョニングするには、BareMetalHost カスタムリソースの spec.externallyProvisioned 仕様を false に設定する必要があります。
前提条件
- ユーザーがプロビジョニングしたベアメタルクラスターを作成しました。
- ホストへのベースボード管理コントローラー (BMC) アクセス権限がある。
-
ProvisioningCR を作成して、クラスターにプロビジョニングサービスをデプロイしました。
手順
SecretCR とBareMetalHostCR を作成します。次のコマンドを実行して、ベアメタルホストオブジェクトを作成します。
oc create -f bmh.yaml
$ oc create -f bmh.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
secret/worker1-bmc created baremetalhost.metal3.io/worker1 created
secret/worker1-bmc created baremetalhost.metal3.io/worker1 createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow すべての証明書署名要求 (CSR) を承認します。
次のコマンドを実行して、ホストのプロビジョニング状態が
provisionedであることを確認します。oc get bmh -A
$ oc get bmh -ACopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAMESPACE NAME STATE CONSUMER ONLINE ERROR AGE openshift-machine-api controller1 externally provisioned true 5m25s openshift-machine-api worker1 provisioned true 4m45s
NAMESPACE NAME STATE CONSUMER ONLINE ERROR AGE openshift-machine-api controller1 externally provisioned true 5m25s openshift-machine-api worker1 provisioned true 4m45sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、保留中の CSR のリストを取得します。
oc get csr
$ oc get csrCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
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
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> PendingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、CSR を承認します。
oc adm certificate approve <csr_name>
$ oc adm certificate approve <csr_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
certificatesigningrequest.certificates.k8s.io/<csr_name> approved
certificatesigningrequest.certificates.k8s.io/<csr_name> approvedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、ノードの準備ができていることを確認します。
oc get nodes
$ oc get nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME STATUS ROLES AGE VERSION app1 Ready worker 47s v1.24.0+dc5a2fd controller1 Ready master,worker 2d22h v1.24.0+dc5a2fd
NAME STATUS ROLES AGE VERSION app1 Ready worker 47s v1.24.0+dc5a2fd controller1 Ready master,worker 2d22h v1.24.0+dc5a2fdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
10.5.4. オプション: BMO を使用して、ユーザーがプロビジョニングしたクラスターで既存のホストを管理する リンクのコピーリンクがクリップボードにコピーされました!
オプションで、Bare Metal Operator (BMO) を使用して、既存のホストの BareMetalHost オブジェクトを作成すると、ユーザーがプロビジョニングしたクラスターで既存のベアメタルコントローラーホストを管理できます。ユーザーがプロビジョニングした既存のホストを管理する必要はありません。ただし、それらをインベントリー目的で外部プロビジョニングされたホストとして登録することはできます。
BMO を使用して、既存のホストを管理するには、BareMetalHost カスタムリソースの spec.externallyProvisioned 仕様を true に設定して、BMO がホストを再プロビジョニングしないようにする必要があります。
前提条件
- ユーザーがプロビジョニングしたベアメタルクラスターを作成しました。
- ホストへのベースボード管理コントローラー (BMC) アクセス権限がある。
-
ProvisioningCR を作成して、クラスターにプロビジョニングサービスをデプロイしました。
手順
SecretCR とBareMetalHostCR を作成します。次のコマンドを実行して、ベアメタルホストオブジェクトを作成します。
oc create -f controller.yaml
$ oc create -f controller.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
secret/controller1-bmc created baremetalhost.metal3.io/controller1 created
secret/controller1-bmc created baremetalhost.metal3.io/controller1 createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、BMO がベアメタルホストオブジェクトを作成したことを確認します。
oc get bmh -A
$ oc get bmh -ACopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAMESPACE NAME STATE CONSUMER ONLINE ERROR AGE openshift-machine-api controller1 externally provisioned true 13s
NAMESPACE NAME STATE CONSUMER ONLINE ERROR AGE openshift-machine-api controller1 externally provisioned true 13sCopy to Clipboard Copied! Toggle word wrap Toggle overflow
10.5.5. BMO を使用して、ユーザーがプロビジョニングしたクラスターからホストを削除する リンクのコピーリンクがクリップボードにコピーされました!
Bare Metal Operator (BMO) を使用して、ユーザーがプロビジョニングしたクラスターからベアメタルホストを削除できます。
前提条件
- ユーザーがプロビジョニングしたベアメタルクラスターを作成しました。
- ホストへのベースボード管理コントローラー (BMC) アクセス権限がある。
-
ProvisioningCR を作成して、クラスターにプロビジョニングサービスをデプロイしました。
手順
次のコマンドを実行して、ホストを封鎖およびドレインします。
oc adm drain app1 --force --ignore-daemonsets=true
$ oc adm drain app1 --force --ignore-daemonsets=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow BareMetalHostCR からcustomDeploy仕様を削除します。次のコマンドを実行して、ホストの
BareMetalHostCR を編集します。oc edit bmh -n openshift-machine-api <host_name>
$ oc edit bmh -n openshift-machine-api <host_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow spec.customDeployおよびspec.customDeploy.methodの行を削除します。... customDeploy: method: install_coreos... customDeploy: method: install_coreosCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、ホストのプロビジョニング状態が
deprovisioningに変わることを確認します。oc get bmh -A
$ oc get bmh -ACopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAMESPACE NAME STATE CONSUMER ONLINE ERROR AGE openshift-machine-api controller1 externally provisioned true 58m openshift-machine-api worker1 deprovisioning true 57m
NAMESPACE NAME STATE CONSUMER ONLINE ERROR AGE openshift-machine-api controller1 externally provisioned true 58m openshift-machine-api worker1 deprovisioning true 57mCopy to Clipboard Copied! Toggle word wrap Toggle overflow
次のコマンドを実行して、ノードを削除します。
oc delete node <node_name>
$ oc delete node <node_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、ノードが削除されたことを確認します。
oc get nodes
$ oc get nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME STATUS ROLES AGE VERSION controller1 Ready master,worker 2d23h v1.24.0+dc5a2fd
NAME STATUS ROLES AGE VERSION controller1 Ready master,worker 2d23h v1.24.0+dc5a2fdCopy to Clipboard Copied! Toggle word wrap Toggle overflow