第13章 ノード配置の制御
director のデフォルトの動作では、通常プロファイルタグに基づいて、各ロールにノードが無作為に選択されます。ただし、director には特定のノード配置を定義する機能も備えられています。この機能は、以下の場合に役立ちます。
-
controller-0
、controller-1
などの特定のノード ID を割り当てる - カスタムのホスト名を割り当てる
- 特定の IP アドレスを割り当てる
- 特定の仮想 IP アドレスを割り当てる
予測可能な IP アドレス、仮想 IP アドレス、ネットワークのポートを手動で設定すると、割り当てプールの必要性が軽減されます。ただし、新規ノードがスケーリングされた場合に対応できるように、各ネットワーク用の割り当てプールは維持することを推奨します。静的に定義された IP アドレスは、必ず割り当てプール外となるようにしてください。割り当てプールの設定に関する詳しい情報は、「カスタムネットワーク環境ファイル」を参照してください。
13.1. 特定のノード ID の割り当て
以下の手順では、特定のノードにノード 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 から始まる一意の連番のインデックスを使用して、すべてのノードに対してこのパターンを繰り返します。指定したロール (コントローラー、コンピュート、各ストレージロール) のすべてのノードが同じようにタグ付けされるようにします。このようにタグ付けしないと、Compute スケジューラーはこのケイパビリティーを正しく照合しません。
次のステップでは、Heat 環境ファイル (例: scheduler_hints_env.yaml
) を作成します。このファイルは、スケジューラーヒントを使用して、各ノードのケイパビリティーと照合します。以下に例を示します。
parameter_defaults: ControllerSchedulerHints: 'capabilities:node': 'controller-%index%'
これらのスケジューラーヒントを使用するには、オーバークラウドの作成時に、overcloud deploy
コマンドに scheduler_hints_env.yaml
環境ファイルを追加します。
これらのパラメーターを使用して、ロールごとに同じアプローチを使用することができます。
-
コントローラーノードの場合は
ControllerSchedulerHints
。 -
コンピュートノードの場合は
ComputeSchedulerHints
。 -
Block Storage ノードの場合は
BlockStorageSchedulerHints
。 -
Object Storage ノードの場合は
ObjectStorageSchedulerHints
。 -
Ceph Storage ノードの場合は
CephStorageSchedulerHints
。 -
カスタムロールの場合は
[ROLE]SchedulerHints
。[ROLE]
はロール名に置き換えます。
プロファイル照合よりもノードの配置が優先されます。スケジューリングが機能しなくならないように、プロファイル照合用に設計されたフレーバー (compute
、control
など) ではなく、デプロイメントにデフォルトの baremetal
フレーバーを使用します。以下に例を示します。
$ openstack overcloud deploy ... --control-flavor baremetal --compute-flavor baremetal ...