第6章 クラスターの拡張
installer-provisioned OpenShift Container Platform クラスターのデプロイ後に、以下の手順を使用してワーカーノードの数を拡張することができます。それぞれの候補となるワーカーノードが前提条件を満たしていることを確認します。
RedFish Virtual Media を使用してクラスターを拡張するには、最低限のファームウェア要件を満たす必要があります。RedFish Virtual Media を使用したクラスターの拡張時の詳細は、前提条件セクションの仮想メディアを使用したインストールのファームウェア要件を参照してください。
6.1. ベアメタルノードの準備
クラスターを拡張するには、ノードに関連する IP アドレスを提供する必要があります。これは、静的設定または DHCP (動的ホスト設定プロトコル) サーバーを使用して行うことができます。DHCP サーバーを使用してクラスターを拡張する場合、各ノードには DHCP 予約が必要です。
一部の管理者は、各ノードの IP アドレスが DHCP サーバーがない状態で一定になるように静的 IP アドレスの使用を選択します。NMState で静的 IP アドレスを設定するには、「OpenShift インストールの環境のセットアップ」セクションの「オプション: install-config.yaml
でのホストネットワークインターフェイスの設定」で追加の詳細を参照してください。
ベアメタルノードを準備するには、プロビジョナーノードから以下の手順を実行する必要があります。
手順
oc
バイナリーを取得します。$ curl -s https://mirror.openshift.com/pub/openshift-v4/clients/ocp/$VERSION/openshift-client-linux-$VERSION.tar.gz | tar zxvf - oc
$ sudo cp oc /usr/local/bin
- ベースボード管理コントローラー (BMC) を使用してベアメタルノードの電源を切り、オフになっていることを確認します。
ベアメタルノードのベースボード管理コントローラーのユーザー名およびパスワードを取得します。次に、ユーザー名とパスワードから
base64
文字列を作成します。$ echo -ne "root" | base64
$ echo -ne "password" | base64
ベアメタルノードの設定ファイルを作成します。静的設定または DHCP サーバーのどちらを使用しているかに応じて、次の例の
bmh.yaml
ファイルのいずれかを使用し、環境に合わせて YAML の値を置き換えます。$ vim bmh.yaml
静的設定
bmh.yaml
:--- apiVersion: v1 1 kind: Secret metadata: name: openshift-worker-<num>-network-config-secret 2 namespace: openshift-machine-api type: Opaque stringData: nmstate: | 3 interfaces: 4 - name: <nic1_name> 5 type: ethernet state: up ipv4: address: - ip: <ip_address> 6 prefix-length: 24 enabled: true dns-resolver: config: server: - <dns_ip_address> 7 routes: config: - destination: 0.0.0.0/0 next-hop-address: <next_hop_ip_address> 8 next-hop-interface: <next_hop_nic1_name> 9 --- apiVersion: v1 kind: Secret metadata: name: openshift-worker-<num>-bmc-secret 10 namespace: openshift-machine-api type: Opaque data: username: <base64_of_uid> 11 password: <base64_of_pwd> 12 --- apiVersion: metal3.io/v1alpha1 kind: BareMetalHost metadata: name: openshift-worker-<num> 13 namespace: openshift-machine-api spec: online: True bootMACAddress: <nic1_mac_address> 14 bmc: address: <protocol>://<bmc_url> 15 credentialsName: openshift-worker-<num>-bmc-secret 16 disableCertificateVerification: True 17 username: <bmc_username> 18 password: <bmc_password> 19 rootDeviceHints: deviceName: <root_device_hint> 20 preprovisioningNetworkDataName: openshift-worker-<num>-network-config-secret 21
- 1
- 新しく作成されたノードのネットワークインターフェイスを設定するには、ネットワーク設定を含むシークレットの名前を指定します。
nmstate
構文に従って、ノードのネットワーク設定を定義します。NMState 構文の設定に関する詳細は、「オプション: install-config.yaml ファイルでのホストネットワークインターフェイスの設定」を参照してください。 - 2 10 13 16
name
、credentialsName
、およびpreprovisioningNetworkDataName
フィールドの<num>
は、ベアメタルノードのワーカー番号に置き換えます。- 3
- NMState YAML 構文を追加して、ホストインターフェイスを設定します。
- 4
- オプション:
nmstate
を使用してネットワークインターフェイスを設定しており、インターフェイスを無効にする場合は、次のように IP アドレスをenabled: false
に設定してstate: up
を設定します。--- interfaces: - name: <nic_name> type: ethernet state: up ipv4: enabled: false ipv6: enabled: false
- 5 6 7 8 9
<nic1_name>
、<ip_address>
、<dns_ip_address>
、<next_hop_ip_address>
、および<next_hop_nic1_name>
を適切な値に置き換えます。- 11 12
<base64_of_uid>
と<base64_of_pwd>
は、ユーザー名とパスワードの base64 文字列に置き換えます。- 14
<nic1_mac_address>
を、ベアメタルノードの最初の NIC の MAC アドレスに置き換えます。追加の BMC 設定オプションは、「BMC アドレス指定」のセクションを参照してください。- 15
<protocol>
は、IPMI、RedFish などの BMC プロトコルに置き換えます。<bmc_url>
を、ベアメタルノードのベースボード管理コントローラーの URL に置き換えます。- 17
- 証明書の検証をスキップするには、
disableCertificateVerification
を true に設定します。 - 18 19
<bmc_username>
と<bmc_password>
を BMC ユーザー名とパスワードの文字列に置き換えます。- 20
- オプション: root デバイスヒントを指定する場合は、
<root_device_hint>
をデバイスパスに置き換えます。 - 21
- オプション: 新しく作成されたノードのネットワークインターフェイスを設定した場合は、BareMetalHost CR の
preprovisioningNetworkDataName
にネットワーク設定のシークレット名を指定します。
DHCP 設定
bmh.yaml
:--- apiVersion: v1 kind: Secret metadata: name: openshift-worker-<num>-bmc-secret 1 namespace: openshift-machine-api type: Opaque data: username: <base64_of_uid> 2 password: <base64_of_pwd> 3 --- apiVersion: metal3.io/v1alpha1 kind: BareMetalHost metadata: name: openshift-worker-<num> 4 namespace: openshift-machine-api spec: online: True bootMACAddress: <nic1_mac_address> 5 bmc: address: <protocol>://<bmc_url> 6 credentialsName: openshift-worker-<num>-bmc-secret 7 disableCertificateVerification: True 8 username: <bmc_username> 9 password: <bmc_password> 10 rootDeviceHints: deviceName: <root_device_hint> 11 preprovisioningNetworkDataName: openshift-worker-<num>-network-config-secret 12
- 1 4 7
name
、credentialsName
、およびpreprovisioningNetworkDataName
フィールドの<num>
は、ベアメタルノードのワーカー番号に置き換えます。- 2 3
<base64_of_uid>
と<base64_of_pwd>
は、ユーザー名とパスワードの base64 文字列に置き換えます。- 5
<nic1_mac_address>
を、ベアメタルノードの最初の NIC の MAC アドレスに置き換えます。追加の BMC 設定オプションは、「BMC アドレス指定」のセクションを参照してください。- 6
<protocol>
は、IPMI、RedFish などの BMC プロトコルに置き換えます。<bmc_url>
を、ベアメタルノードのベースボード管理コントローラーの URL に置き換えます。- 8
- 証明書の検証をスキップするには、
disableCertificateVerification
を true に設定します。 - 9 10
<bmc_username>
と<bmc_password>
を BMC ユーザー名とパスワードの文字列に置き換えます。- 11
- オプション: root デバイスヒントを指定する場合は、
<root_device_hint>
をデバイスパスに置き換えます。 - 12
- オプション: 新しく作成されたノードのネットワークインターフェイスを設定した場合は、BareMetalHost CR の
preprovisioningNetworkDataName
にネットワーク設定のシークレット名を指定します。
注記既存のベアメタルノードの MAC アドレスが、プロビジョニングしようとしているベアメタルホストの MAC アドレスと一致する場合、Ironic インストールは失敗します。ホストの登録、検査、クリーニング、または他の Ironic 手順が失敗する場合、ベアメタル Operator はインストールを継続的に再試行します。詳細は、「ホストの重複した MAC アドレスの診断」を参照してください。
ベアメタルノードを作成します。
$ oc -n openshift-machine-api create -f bmh.yaml
出力例
secret/openshift-worker-<num>-network-config-secret created secret/openshift-worker-<num>-bmc-secret created baremetalhost.metal3.io/openshift-worker-<num> created
<num>
はワーカー番号です。ベアメタルノードの電源をオンにし、これを検査します。
$ oc -n openshift-machine-api get bmh openshift-worker-<num>
<num>
はワーカーノード番号です。出力例
NAME STATE CONSUMER ONLINE ERROR openshift-worker-<num> available true
注記ワーカーノードがクラスターに参加できるようにするには、
machineset
オブジェクトをBareMetalHost
オブジェクトの数にスケーリングします。ノードは手動または自動でスケーリングできます。ノードを自動的にスケーリングするには、machineset
にmetal3.io/autoscale-to-hosts
アノテーションを使用します。
関連情報
- NMState 構文の設定に関する詳細は、(オプション) install-config.yaml ファイルでのホストネットワークインターフェイスの設定 を参照してください。
- マシンの自動スケーリングに関する詳細は、利用可能なベアメタルホストの数 へのマシンの自動スケーリング を参照してください。