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 ファイルがある。

手順

  1. 追加するノードの設定を含む、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

  2. 次のコマンドを実行して ISO イメージを生成します。

    $ oc adm node-image create nodes-config.yaml
    重要

    create コマンドでターゲットクラスターのバージョンに一致するリリースイメージを取得するには、有効なプルシークレットを指定する必要があります。プルシークレットは、--registry-config フラグを使用するか、事前に REGISTRY_AUTH_FILE 環境変数を設定することで指定できます。

    注記

    --dir フラグを使用して nodes-config.yaml ファイルのディレクトリーが指定されていない場合、ツールはカレントディレクトリーでファイルを検索します。

  3. アセットディレクトリーに新しい node.<arch>.iso ファイルが存在することを確認します。ISO イメージの作成時に別のディレクトリーを指定しない限り、カレントディレクトリーがアセットディレクトリーになります。
  4. 生成された ISO イメージを使用して、選択したノードを起動します。
  5. 次のコマンドを実行して、ノード作成の進行状況を追跡します。

    $ oc adm node-image monitor --ip-addresses <ip_addresses>

    ここでは、以下のようになります。

    <ip_addresses>

    追加するノードの IP アドレスのリストを指定します。

    注記

    ノードで逆引き DNS エントリーが利用できない場合、oc adm node-image monitor コマンドは保留中の証明書署名要求 (CSR) のチェックをスキップします。このチェックがスキップされた場合は、oc get csr コマンドを実行して CSR を手動で確認する必要があります。

  6. 各 CSR に対して次のコマンドを実行して、CSR を承認します。

    $ oc adm certificate approve <csr_name>

6.4.2.2. コマンドフラグを使用してノードを追加する

コマンドフラグを使用して新しいノードの設定を指定することにより、クラスターに 1 つのノードを追加できます。

前提条件

  • OpenShift CLI (oc) がインストールされている。
  • ターゲットクラスターへのアクティブな接続がある。
  • 利用可能な kubeconfig ファイルがある。

手順

  1. 次のコマンドを実行して 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 コマンドを実行します。

  2. アセットディレクトリーに新しい node.<arch>.iso ファイルが存在することを確認します。ISO イメージの作成時に別のディレクトリーを指定しない限り、カレントディレクトリーがアセットディレクトリーになります。
  3. 生成された ISO イメージを使用してノードを起動します。
  4. 次のコマンドを実行して、ノード作成の進行状況を追跡します。

    $ oc adm node-image monitor --ip-addresses <ip_address>

    ここでは、以下のようになります。

    <ip_address>
    追加するノードの IP アドレスのリストを指定します。
    注記

    ノードで逆引き DNS エントリーが利用できない場合、oc adm node-image monitor コマンドは保留中の証明書署名要求 (CSR) のチェックをスキップします。このチェックがスキップされた場合は、oc get csr コマンドを実行して CSR を手動で確認する必要があります。

  5. 各 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 ファイルで指定できる設定パラメーターについて、次の表で説明します。

表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 キーを含むファイル。

文字列。

6.4.3.2. コマンドフラグのオプション

oc adm node-image create コマンドでコマンドフラグを使用すると、作成するノードを設定できます。

次の表は、1 つのノードの作成時以外にも使用できるコマンドフラグを説明しています。

表6.3 一般的なコマンドフラグ
フラグ説明

--certificate-authority

マネージドコンテナーイメージレジストリーと通信するときに使用する認証局バンドルへのパス。--insecure フラグが使用されている場合、このフラグは無視されます。

String

--dir

設定ファイルを含むパス (ファイルが指定されている場合)。このパスは、生成されたアーティファクトを保存するためにも使用されます。

String

--insecure

レジストリーへのプッシュおよびプル操作を HTTP 経由で実行することを許可します。

Boolean

-o, --output-name

生成される出力イメージの名前。

String

-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

--skip-verification

取得したコンテンツの整合性の検証をスキップするオプション。これは推奨されませんが、古いイメージレジストリーからイメージをインポートするときに必要になる場合があります。レジストリーが信頼できるとわかっている場合にのみ検証を省略してください。

Boolean

次の表は、1 つのノードの作成時にのみ使用できるコマンドフラグを説明しています。

表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

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.