第13章 ノード配置の制御
デフォルトでは、director はノードのプロファイルタグに従って、それぞれのロールのノードを無作為に選択します。ただし、特定のノード配置を定義することもできます。これは、以下のシナリオで役に立ちます。
-
controller-0
、controller-1
などの特定のノード ID を割り当てる - カスタムのホスト名を割り当てる
- 特定の IP アドレスを割り当てる
- 特定の仮想 IP アドレスを割り当てる
予測可能な IP アドレス、仮想 IP アドレス、ネットワークのポートを手動で設定すると、割り当てプールの必要性が軽減されます。ただし、新規ノードがスケーリングされた場合に対応できるように、各ネットワーク用の割り当てプールは維持することを推奨します。定義された固定 IP アドレスは、必ず割り当てプール外となるようにしてください。
13.1. 特定のノード ID の割り当て
ノード ID を特定のノードに割り当てることができます (例: controller-0
、controller-1
、compute-0
、および compute-1
)。
手順
デプロイメント時に Compute スケジューラーが照合するノード別ケイパビリティーとして、この ID を割り当てます。
openstack baremetal node set --property capabilities='node:controller-0,boot_option:local' <id>
このコマンドにより、
node:controller-0
のケイパビリティーがノードに割り当てられます。0 から始まる一意の連番のインデックスを使用して、すべてのノードに対してこのパターンを繰り返します。指定したロール (Controller、Compute、各ストレージロール) のすべてのノードが同じようにタグ付けされるようにします。このようにタグ付けしないと、Compute スケジューラーはこのケイパビリティーを正しく照合することができません。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]
はロール名に置き換えます。
-
コントローラーノードの場合は
-
overcloud deploy command
コマンドにscheduler_hints_env.yaml
環境ファイルを追加します。
プロファイルの照合よりもノード配置が優先されます。スケジューリングが機能しなくならないように、プロファイル照合用に設計されたフレーバー (compute
、control
) ではなく、デプロイメントにデフォルトの baremetal
フレーバーを使用します。環境ファイルで、それぞれのフレーバーパラメーターを baremetal に設定します。
parameter_defaults: OvercloudControllerFlavor: baremetal OvercloudComputeFlavor: baremetal