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 クラスターをベアメタルにインストールしました。
手順
Provisioning
CR を作成します。次の YAML を
provisioning.yaml
ファイルに保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記OpenShift Container Platform 4.13 は、Bare Metal Operator を使用して、ユーザーがプロビジョニングしたクラスターをスケーリングする場合、プロビジョニングネットワークの有効化をサポートしません。
次のコマンドを実行して、
Provisioning
CR を作成します。oc create -f provisioning.yaml
$ oc create -f provisioning.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
provisioning.metal3.io/provisioning-configuration created
provisioning.metal3.io/provisioning-configuration created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、プロビジョニングサービスが実行されていることを確認します。
oc get pods -n openshift-machine-api
$ oc get pods -n openshift-machine-api
Copy 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) アクセス権限がある。
-
Provisioning
CR を作成して、クラスターにプロビジョニングサービスをデプロイしました。
手順
Secret
CR とBareMetalHost
CR を作成します。次のコマンドを実行して、ベアメタルホストオブジェクトを作成します。
oc create -f bmh.yaml
$ oc create -f bmh.yaml
Copy 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 created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow すべての証明書署名要求 (CSR) を承認します。
次のコマンドを実行して、ホストのプロビジョニング状態が
provisioned
であることを確認します。oc get bmh -A
$ oc get bmh -A
Copy 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 4m45s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、保留中の CSR のリストを取得します。
oc get csr
$ oc get csr
Copy 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> Pending
Copy 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> approved
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、ノードの準備ができていることを確認します。
oc get nodes
$ oc get nodes
Copy 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+dc5a2fd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.5.4. オプション: BMO を使用して、ユーザーがプロビジョニングしたクラスターで既存のホストを管理する リンクのコピーリンクがクリップボードにコピーされました!
オプションで、Bare Metal Operator (BMO) を使用して、既存のホストの BareMetalHost
オブジェクトを作成すると、ユーザーがプロビジョニングしたクラスターで既存のベアメタルコントローラーホストを管理できます。ユーザーがプロビジョニングした既存のホストを管理する必要はありません。ただし、それらをインベントリー目的で外部プロビジョニングされたホストとして登録することはできます。
BMO を使用して、既存のホストを管理するには、BareMetalHost
カスタムリソースの spec.externallyProvisioned
仕様を true
に設定して、BMO がホストを再プロビジョニングしないようにする必要があります。
前提条件
- ユーザーがプロビジョニングしたベアメタルクラスターを作成しました。
- ホストへのベースボード管理コントローラー (BMC) アクセス権限がある。
-
Provisioning
CR を作成して、クラスターにプロビジョニングサービスをデプロイしました。
手順
Secret
CR とBareMetalHost
CR を作成します。次のコマンドを実行して、ベアメタルホストオブジェクトを作成します。
oc create -f controller.yaml
$ oc create -f controller.yaml
Copy 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 created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、BMO がベアメタルホストオブジェクトを作成したことを確認します。
oc get bmh -A
$ oc get bmh -A
Copy 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 13s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.5.5. BMO を使用して、ユーザーがプロビジョニングしたクラスターからホストを削除する リンクのコピーリンクがクリップボードにコピーされました!
Bare Metal Operator (BMO) を使用して、ユーザーがプロビジョニングしたクラスターからベアメタルホストを削除できます。
前提条件
- ユーザーがプロビジョニングしたベアメタルクラスターを作成しました。
- ホストへのベースボード管理コントローラー (BMC) アクセス権限がある。
-
Provisioning
CR を作成して、クラスターにプロビジョニングサービスをデプロイしました。
手順
次のコマンドを実行して、ホストを封鎖およびドレインします。
oc adm drain app1 --force --ignore-daemonsets=true
$ oc adm drain app1 --force --ignore-daemonsets=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow BareMetalHost
CR からcustomDeploy
仕様を削除します。次のコマンドを実行して、ホストの
BareMetalHost
CR を編集します。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_coreos
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、ホストのプロビジョニング状態が
deprovisioning
に変わることを確認します。oc get bmh -A
$ oc get bmh -A
Copy 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 57m
Copy 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 nodes
Copy 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+dc5a2fd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow