6.4. オンプレミスクラスターにワーカーノードを追加する
OpenShift CLI (oc) を使用して ISO イメージを生成することで、オンプレミスクラスターにワーカーノードを追加できます。生成された ISO イメージを使用して、ターゲットクラスター内の 1 つまたは複数のノードを起動できます。このプロセスは、クラスターのインストール方法に関係なく使用できます。
静的ネットワーク設定などのより複雑な設定で各ノードをカスタマイズしながら一度に 1 つ以上のノードを追加することも、各ノードの MAC アドレスのみを指定することもできます。必要な設定が ISO 生成時に指定されなかった場合、その設定はターゲットクラスターから取得され、新しいノードに適用されます。
ノードがクラスターに正常に追加された後に、Machine または BareMetalHost リソースが自動的に作成されることはありません。
ISO イメージの起動時にも事前検証チェックが実行され、各ノードの起動を試みる前に障害の原因となる問題が通知されます。
- サポート対象のプラットフォーム
このノード追加方法では、次のプラットフォームがサポートされています。
-
baremetal -
vsphere -
nutanix -
none
-
- サポートされているアーキテクチャー
このプロセスを使用してワーカーノードを追加する場合、次のアーキテクチャーの組み合わせが機能することが検証されています。
-
amd64またはarm64クラスター上のamd64ワーカーノード -
amd64またはarm64クラスター上のarm64ワーカーノード -
s390xクラスター上のs390xワーカーノード -
ppc64leクラスター上のppc64leワーカーノード
-
- クラスターへのノードの追加
この方法では、次の 2 つの方法でノードを追加できます。
設定ファイルを使用して 1 つ以上のノードを追加する。
oc adm node-image createコマンドを実行する前に、nodes-config.yamlファイルで 1 つ以上のノードの設定を指定できます。これは、一度に複数のノードを追加する場合や、複雑な設定を指定する場合に便利です。コマンドフラグのみを使用して 1 つのノードを追加する。
設定を指定するためのフラグを指定して
oc adm node-image createコマンドを実行すると、1 つのノードを追加できます。これは、ノードを一度に 1 つだけ追加するときに、そのノードに対して指定する設定が単純な場合に便利です。
6.4.1. クラスター設定リファレンス リンクのコピーリンクがクリップボードにコピーされました!
ISO イメージを作成すると、ターゲットクラスターから設定が取得され、新しいノードに適用されます。これらの設定は、nodes-config.yaml ファイルで新しい値を指定するか、ISO イメージを作成する前に oc adm node-image create コマンドに追加するフラグを指定することで上書きできます。
- YAML ファイルのパラメーター
nodes-config.yamlファイルで指定できる設定パラメーターについて、次の表で説明します。Expand 表6.2 nodes-config.yaml のパラメーター パラメーター 説明 値 hosts:ホストの設定。
ホスト設定オブジェクトの配列。
hosts: hostname:ホスト名。動的ホスト設定プロトコル (DHCP) または逆引き DNS ルックアップから取得したホスト名をオーバーライドします。各ホストには、いずれかの手段で指定された一意のホスト名が必要ですが、このパラメーターを使用したホスト名の設定はオプションです。
文字列。
hosts: interfaces:ホスト上のインターフェイスの名前と MAC アドレスのマッピングテーブルを提供します。
nodes-config.yamlファイルにNetworkConfigセクションが指定されている場合、このテーブルを含める必要があります。値はNetworkConfigセクションで指定されているマッピングと一致する必要があります。ホスト設定オブジェクトの配列。
hosts: interfaces: name:ホスト上のインターフェイスの名前。
文字列。
hosts: interfaces: macAddress:ホスト上のインターフェイスの MAC アドレス。
たとえば
00-B0-D0-63-C2-26などの MAC アドレス。hosts: rootDeviceHints:特定デバイスへの Red Hat Enterprise Linux CoreOS (RHCOS) イメージのプロビジョニングを有効にします。node-adding ツールが、デバイスを検出した順序で検査し、検出した値をヒントの値と比較します。ヒントの値と一致する最初に検出されたデバイスが使用されます。
キーと値のペアのディクショナリー。詳細は、「OpenShift インストール環境のセットアップ」ページの「ルートデバイスのヒント」を参照してください。
hosts: rootDeviceHints: deviceName:RHCOS イメージがプロビジョニングされるデバイスの名前。
文字列。
hosts: networkConfig:ホストネットワーク定義。この設定は、nmstate ドキュメント で定義されている Host Network Management API と一致する必要があります。
ホストネットワーク設定オブジェクトのディクショナリー。
cpuArchitecture:オプション: 追加するノードのアーキテクチャーを指定します。このパラメーターを使用すると、必要に応じてクラスターのデフォルト値をオーバーライドできます。
文字列。
sshKey:オプション: クラスターマシンへのアクセスを認証するための SSH キーを含むファイル。
文字列。
bootArtifactsBaseURL:オプション: iPXE スクリプトの生成時に、Preboot Execution Environment (PXE) アセットをアップロードするサーバーの URL を指定します。ISO イメージではなく PXE アセットを生成するには、
--pxeフラグも設定する必要があります。文字列。
- コマンドフラグのオプション
oc adm node-image createコマンドでコマンドフラグを使用すると、作成するノードを設定できます。次の表は、1 つのノードの作成時以外にも使用できるコマンドフラグを説明しています。
Expand 表6.3 一般的なコマンドフラグ フラグ 説明 値 --certificate-authorityマネージドコンテナーイメージレジストリーと通信するときに使用する認証局バンドルへのパス。
--insecureフラグが使用されている場合、このフラグは無視されます。String
--dir設定ファイルを含むパス (ファイルが指定されている場合)。このパスは、生成されたアーティファクトを保存するためにも使用されます。
String
--insecureレジストリーへのプッシュおよびプル操作を HTTP 経由で実行することを許可します。
Boolean
-o、--output-name生成される出力イメージの名前。
String
p、--pxe起動可能な ISO ファイルの代わりに、Preboot Execution Environment (PXE) アセットを生成します。
このフラグが設定されている場合は、
nodes-config.yamlファイルのbootArtifactsBaseURLパラメーターを使用して、PXE アセットをアップロードするサーバーの URL を指定することもできます。Boolean
-a、--registry-configレジストリー認証情報へのパス。または、
REGISTRY_AUTH_FILE環境変数を指定することもできます。デフォルトのパスは、${XDG_RUNTIME_DIR}/containers/auth.json、/run/containers/${UID}/auth.json、${XDG_CONFIG_HOME}/containers/auth.json、${DOCKER_CONFIG}、~/.docker/config.json、~/.dockercfg.非推奨のREGISTRY_AUTH_PREFERENCE環境変数を "docker" 値に変更すると、Podman よりも Docker 認証情報を優先するように順序を変更できます。String
-r、--reportプロセスが成功したかどうかにかかわらず、ノード作成プロセスのレポートを生成します。このフラグを指定しない場合は、失敗した場合にのみレポートが生成されます。
Boolean
--skip-verification取得したコンテンツの整合性の検証をスキップするオプション。これは推奨されませんが、古いイメージレジストリーからイメージをインポートするときに必要になる場合があります。レジストリーが信頼できるとわかっている場合にのみ検証を省略してください。
Boolean
次の表は、1 つのノードの作成時にのみ使用できるコマンドフラグを説明しています。
Expand 表6.4 1 つのノードを作成するときにのみ使用するコマンドフラグ フラグ 説明 値 -c、--cpu-architectureノードのインストールに使用する CPU アーキテクチャー。このフラグは 1 つのノードを作成するときにのみ使用できます。
--mac-addressフラグを定義する必要があります。String
--hostnameノードに設定するホスト名。このフラグは 1 つのノードを作成するときにのみ使用できます。
--mac-addressフラグを定義する必要があります。String
-m、--mac-address設定を適用するホストの特定に使用する MAC アドレス。このフラグは 1 つのノードを作成するときにのみ使用できます。
--mac-addressフラグを定義する必要があります。String
--network-config-pathノードに適用する NMState 設定を含む YAML ファイルへのパス。このフラグは 1 つのノードを作成するときにのみ使用できます。
--mac-addressフラグを定義する必要があります。String
--root-device-hintイメージのルートファイルシステムの保存場所を指定するためのヒント。使用できる形式は
<hint_name>:<value>です。このフラグは 1 つのノードを作成するときにのみ使用できます。--mac-addressフラグを定義する必要があります。String
-k、--ssh-key-pathノードにアクセスするために使用する SSH キーへのパス。このフラグは 1 つのノードを作成するときにのみ使用できます。
--mac-addressフラグを定義する必要があります。String
6.4.1.1. 設定ファイルを使用して 1 つ以上のノードを追加する リンクのコピーリンクがクリップボードにコピーされました!
nodes-config.yaml ファイルを使用して新しいノードの設定を指定することにより、クラスターに 1 つ以上のノードを追加できます。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 - Rsync ユーティリティーがインストールされている。
- ターゲットクラスターへのアクティブな接続がある。
- 利用可能な kubeconfig ファイルがある。
手順
追加するノードの設定を含む、
nodes-config.yamlという名前の新しい YAML ファイルを作成します。新しい各ノードに MAC アドレスを指定する必要があります。次のファイルの例では、初期の静的ネットワーク設定を使用して 2 つの新しいワーカーが記述されています。
nodes-config.yamlファイルの例hosts: - hostname: extra-worker-1 rootDeviceHints: deviceName: /dev/sda interfaces: - macAddress: 00:00:00:00:00:00 name: eth0 networkConfig: interfaces: - name: eth0 type: ethernet state: up mac-address: 00:00:00:00:00:00 ipv4: enabled: true address: - ip: 192.168.122.2 prefix-length: 23 dhcp: false - hostname: extra-worker-2 rootDeviceHints: deviceName: /dev/sda interfaces: - macAddress: 00:00:00:00:00:02 name: eth0 networkConfig: interfaces: - name: eth0 type: ethernet state: up mac-address: 00:00:00:00:00:02 ipv4: enabled: true address: - ip: 192.168.122.3 prefix-length: 23 dhcp: false次のコマンドを実行して ISO イメージを生成します。
$ oc adm node-image create重要createコマンドでターゲットクラスターのバージョンに一致するリリースイメージを取得するには、有効なプルシークレットを指定する必要があります。プルシークレットは、--registry-configフラグを使用するか、事前にREGISTRY_AUTH_FILE環境変数を設定することで指定できます。注記--dirフラグを使用してnodes-config.yamlファイルのディレクトリーが指定されていない場合、ツールはカレントディレクトリーでファイルを検索します。-
アセットディレクトリーに新しい
node.<arch>.isoファイルが存在することを確認します。ISO イメージの作成時に別のディレクトリーを指定しない限り、カレントディレクトリーがアセットディレクトリーになります。 - 生成された ISO イメージを使用して、選択したノードを起動します。
次のコマンドを実行して、ノード作成の進行状況を追跡します。
$ oc adm node-image monitor --ip-addresses <ip_addresses>各項目の説明:
<ip_addresses>追加するノードの IP アドレスのリストを指定します。
注記ノードで逆引き DNS エントリーが利用できない場合、
oc adm node-image monitorコマンドは保留中の証明書署名要求 (CSR) のチェックをスキップします。このチェックがスキップされた場合は、oc get csrコマンドを実行して CSR を手動で確認する必要があります。
各 CSR に対して次のコマンドを実行して、CSR を承認します。
$ oc adm certificate approve <csr_name>
6.4.1.2. コマンドフラグを使用してノードを追加する リンクのコピーリンクがクリップボードにコピーされました!
コマンドフラグを使用して新しいノードの設定を指定することにより、クラスターに 1 つのノードを追加できます。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 - Rsync ユーティリティーがインストールされている。
- ターゲットクラスターへのアクティブな接続がある。
- 利用可能な kubeconfig ファイルがある。
手順
次のコマンドを実行して ISO イメージを生成します。MAC アドレスはコマンドフラグを使用して指定する必要があります。このコマンドで使用できるその他のフラグは、「クラスター設定リファレンス」セクションを参照してください。
$ oc adm node-image create --mac-address=<mac_address>各項目の説明:
<mac_address>- 追加するノードの MAC アドレスを指定します。
重要createコマンドでターゲットクラスターのバージョンに一致するリリースイメージを取得するには、有効なプルシークレットを指定する必要があります。プルシークレットは、--registry-configフラグを使用するか、事前にREGISTRY_AUTH_FILE環境変数を設定することで指定できます。ヒントノードを設定するために使用できるその他のフラグを表示するには、
oc adm node-image create --helpコマンドを実行します。-
アセットディレクトリーに新しい
node.<arch>.isoファイルが存在することを確認します。ISO イメージの作成時に別のディレクトリーを指定しない限り、カレントディレクトリーがアセットディレクトリーになります。 - 生成された ISO イメージを使用してノードを起動します。
次のコマンドを実行して、ノード作成の進行状況を追跡します。
$ oc adm node-image monitor --ip-addresses <ip_address>各項目の説明:
<ip_address>- 追加するノードの IP アドレスのリストを指定します。
注記ノードで逆引き DNS エントリーが利用できない場合、
oc adm node-image monitorコマンドは保留中の証明書署名要求 (CSR) のチェックをスキップします。このチェックがスキップされた場合は、oc get csrコマンドを実行して CSR を手動で確認する必要があります。各 CSR に対して次のコマンドを実行して、保留中の CSR を承認します。
$ oc adm certificate approve <csr_name>