第13章 ノード配置の制御

デフォルトでは、director はノードのプロファイルタグに従って、それぞれのロールのノードを無作為に選択します。ただし、特定のノード配置を定義することもできます。これは、以下のシナリオで役に立ちます。

  • controller-0controller-1 などの特定のノード ID を割り当てる
  • カスタムのホスト名を割り当てる
  • 特定の IP アドレスを割り当てる
  • 特定の仮想 IP アドレスを割り当てる
注記

予測可能な IP アドレス、仮想 IP アドレス、ネットワークのポートを手動で設定すると、割り当てプールの必要性が軽減されます。ただし、新規ノードがスケーリングされた場合に対応できるように、各ネットワーク用の割り当てプールは維持することを推奨します。定義された固定 IP アドレスは、必ず割り当てプール外となるようにしてください。

13.1. 特定のノード ID の割り当て

ノード ID を特定のノードに割り当てることができます (例: controller-0controller-1compute-0、および compute-1)。

手順

  1. デプロイメント時に Compute スケジューラーが照合するノード別ケイパビリティーとして、この ID を割り当てます。

    openstack baremetal node set --property capabilities='node:controller-0,boot_option:local' <id>

    このコマンドにより、node:controller-0 のケイパビリティーがノードに割り当てられます。0 から始まる一意の連番のインデックスを使用して、すべてのノードに対してこのパターンを繰り返します。指定したロール (Controller、Compute、各ストレージロール) のすべてのノードが同じようにタグ付けされるようにします。このようにタグ付けしないと、Compute スケジューラーはこのケイパビリティーを正しく照合することができません。

  2. heat 環境ファイル (例: scheduler_hints_env.yaml) を作成します。このファイルは、スケジューラーヒントを使用して、各ノードのケイパビリティーと照合します。

    parameter_defaults:
      ControllerSchedulerHints:
        'capabilities:node': 'controller-%index%'

    以下のパラメーターを使用して、他のロール種別のスケジューラーヒントを設定します。

    • コントローラーノードの場合は ControllerSchedulerHints
    • コンピュートノードの場合は ComputeSchedulerHints
    • Block Storage ノードの場合は BlockStorageSchedulerHints
    • Object Storage ノードの場合は ObjectStorageSchedulerHints
    • Ceph Storage ノードの場合は CephStorageSchedulerHints
    • カスタムロールの場合は [ROLE]SchedulerHints[ROLE] はロール名に置き換えます。
  3. overcloud deploy command コマンドに scheduler_hints_env.yaml 環境ファイルを追加します。
注記

プロファイルの照合よりもノード配置が優先されます。スケジューリングが機能しなくならないように、プロファイル照合用に設計されたフレーバー (computecontrol) ではなく、デプロイメントにデフォルトの baremetal フレーバーを使用します。環境ファイルで、それぞれのフレーバーパラメーターを baremetal に設定します。

parameter_defaults:
  OvercloudControllerFlavor: baremetal
  OvercloudComputeFlavor: baremetal