6.4. オンプレミスクラスターにワーカーノードを追加する
オンプレミスクラスターの場合、OpenShift CLI (oc
) を使用してワーカーノードを追加し、ISO イメージを生成できます。その後、このイメージを使用して、ターゲットクラスター内で 1 つ以上のノードを起動できます。このプロセスは、クラスターのインストール方法に関係なく使用できます。
静的ネットワーク設定などのより複雑な設定で各ノードをカスタマイズしながら一度に 1 つ以上のノードを追加することも、各ノードの MAC アドレスのみを指定することもできます。必要な設定が ISO 生成時に指定されなかった場合、その設定はターゲットクラスターから取得され、新しいノードに適用されます。
ISO イメージの起動時にも事前検証チェックが実行され、各ノードの起動を試みる前に障害の原因となる問題が通知されます。
6.4.1. サポート対象のプラットフォーム
このノード追加方法では、次のプラットフォームがサポートされています。
-
baremetal
-
vsphere
-
none
-
external
6.4.2. クラスターへのノードの追加
この方法では、次の 2 つの方法でノードを追加できます。
設定ファイルを使用して 1 つ以上のノードを追加する。
oc adm node-image create
コマンドを実行する前に、nodes-config.yaml
ファイルで 1 つ以上のノードの設定を指定できます。これは、一度に複数のノードを追加する場合や、複雑な設定を指定する場合に便利です。コマンドフラグのみを使用して 1 つのノードを追加する。
設定を指定するためのフラグを指定して
oc adm node-image create
コマンドを実行すると、1 つのノードを追加できます。これは、ノードを一度に 1 つだけ追加するときに、そのノードに対して指定する設定が単純な場合に便利です。
6.4.2.1. 設定ファイルを使用して 1 つ以上のノードを追加する
nodes-config.yaml
ファイルを使用して新しいノードの設定を指定することにより、クラスターに 1 つ以上のノードを追加できます。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 - ターゲットクラスターへのアクティブな接続がある。
- 利用可能な 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 nodes-config.yaml
重要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.2.2. コマンドフラグを使用してノードを追加する
コマンドフラグを使用して新しいノードの設定を指定することにより、クラスターに 1 つのノードを追加できます。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 - ターゲットクラスターへのアクティブな接続がある。
- 利用可能な 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>
6.4.3. クラスター設定リファレンス
ISO イメージを作成すると、ターゲットクラスターから設定が取得され、新しいノードに適用されます。nodes-config.yaml
ファイルまたは oc adm node-image create
コマンドに追加したフラグで設定をオーバーライドしない限り、クラスターのすべての設定がノードに適用されます。
6.4.3.1. YAML ファイルのパラメーター
nodes-config.yaml
ファイルで指定できる設定パラメーターについて、次の表で説明します。
パラメーター | 説明 | 値 |
---|---|---|
hosts: | ホストの設定。 | ホスト設定オブジェクトの配列。 |
hosts: hostname: | ホスト名。動的ホスト設定プロトコル (DHCP) または逆引き DNS ルックアップから取得したホスト名をオーバーライドします。各ホストには、いずれかの手段で指定された一意のホスト名が必要ですが、このパラメーターを使用したホスト名の設定はオプションです。 | 文字列。 |
hosts: interfaces: |
ホスト上のインターフェイスの名前と MAC アドレスのマッピングテーブルを提供します。 | ホスト設定オブジェクトの配列。 |
hosts: interfaces: name: | ホスト上のインターフェイスの名前。 | 文字列。 |
hosts: interfaces: macAddress: | ホスト上のインターフェイスの 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 キーを含むファイル。 | 文字列。 |
6.4.3.2. コマンドフラグのオプション
oc adm node-image create
コマンドでコマンドフラグを使用すると、作成するノードを設定できます。
次の表は、1 つのノードの作成時以外にも使用できるコマンドフラグを説明しています。
フラグ | 説明 | 値 |
---|---|---|
|
マネージドコンテナーイメージレジストリーと通信するときに使用する認証局バンドルへのパス。 | String |
| 設定ファイルを含むパス (ファイルが指定されている場合)。このパスは、生成されたアーティファクトを保存するためにも使用されます。 | String |
| レジストリーへのプッシュおよびプル操作を HTTP 経由で実行することを許可します。 | Boolean |
| 生成される出力イメージの名前。 | String |
|
レジストリー認証情報へのパス。または、 | String |
| 取得したコンテンツの整合性の検証をスキップするオプション。これは推奨されませんが、古いイメージレジストリーからイメージをインポートするときに必要になる場合があります。レジストリーが信頼できるとわかっている場合にのみ検証を省略してください。 | Boolean |
次の表は、1 つのノードの作成時にのみ使用できるコマンドフラグを説明しています。
フラグ | 説明 | 値 |
---|---|---|
|
ノードのインストールに使用する CPU アーキテクチャー。このフラグは 1 つのノードを作成するときにのみ使用できます。 | String |
|
ノードに設定するホスト名。このフラグは 1 つのノードを作成するときにのみ使用できます。 | String |
|
設定を適用するホストの特定に使用する MAC アドレス。このフラグは 1 つのノードを作成するときにのみ使用できます。 | String |
|
ノードに適用する NMState 設定を含む YAML ファイルへのパス。このフラグは 1 つのノードを作成するときにのみ使用できます。 | String |
|
イメージのルートファイルシステムの保存場所を指定するためのヒント。使用できる形式は | String |
|
ノードにアクセスするために使用する SSH キーへのパス。このフラグは 1 つのノードを作成するときにのみ使用できます。 | String |
関連情報