ホスト・ラベル自動割り当てを使用したホストの割り当て

クラスタ内、または Satellite が有効化された IBM Cloud サービスにおいて、ホストはホストラベルに基づいて利用可能な演算能力と照合され、ワーカープールに自動的に割り当てられます。 自動割り当てを有効または無効にすることができます。

ホストの自動割り当ては、Satellite ロケーション・コントロール・プレーンでは使用できません。

ホスト・ラベル

Satellite クラスタにおけるホストの自動割り当てでは、ワーカープールのラベルと、利用可能なホストのホストラベルおよびゾーンラベルが照合されます。

自動割り当てに使用されるホスト・ラベルに関する以下の情報に留意してください。

デフォルトのホスト・ラベル
ホストを Satellite ロケーションに接続すると、ホストはcpu、os、およびmemory (バイト単位) のラベルを自動的に取得します。 これらのラベルは削除できません。 追加のホスト・ラベルを組み込むことも、後でホスト・メタデータを更新することもできます。 ホストにosラベルが含まれていない場合、自動的にRHEL7と見なされます。
ホストはワーカー・プールより多くのラベルを持つことができる
たとえば、 cpu、 memory、 env というホストラベルを持つホストは、 cpu というホストラベルのみを持つワーカープールに自動的に割り当てられることがあります。 ホスト自動割り当てはcpuラベルと一致します。 その逆は機能しません。つまり、ワーカープールのラベル数がホストのラベル数よりも多い場合、そのホストをそのワーカープールに自動割り当てすることはできません。
突き合わせは完全一致
ホスト・ラベルは、完全に一致 (=) している必要があります。 ホスト・ラベルが数値であっても、突き合わせには、より小さい (<)、より大 (>)、またはその他の演算子が使用されます。

ホスト自動割り当てのシナリオ例

default の us-east-1a ワーカー・プールを含む Satellite クラスターと、以下のホスト・ラベルがあるとします。

  • cpu=4
  • env=prod
  • os=RHEL7

Satellite ロケーションには、以下のホスト・ラベルを持つ使用可能な (未割り当ての) ホストがあります。

  • ホスト A: cpu=4, memory=32, env=prod, zone=us-east-1b``os=rhel
  • ホスト B: cpu=4, memory=32, zone=us-east-1a os=RHEL7
  • ホスト C: cpu=4, memory=64, env=prod os=RHEL7
  • ホスト D: cpu=4, memory=64, env=prod os=RHCOS ( Red Hat CoreOS )

default ワーカー・プールをサイズ変更してさらに 3 つのワーカー・ノードを要求した場合、ホスト C のみを自動割り当てでき、ホスト A とホスト B は自動割り当てできません。

  • ホスト A は、中央処理装置(CPU)および env=prod のラベル要求に対応しますが、 us-east-1b でのみ割り当てることができます。 default ワーカー・プールは us-east-1a にのみ存在するため、ホスト A は割り当てられません。
  • ホスト B は CPU とゾーンの要求を満たしています。 ただし、ホストに env=prod のラベルがないため、割り当てられません。
  • ホスト C は、cpu=4 および env=prod のホスト・ラベルが一致し、ゾーン制限がないため、自動的に割り当てられます。 ワーカー・プールは memory=64 のラベルを要求しないため、memory のホスト・ラベルは考慮されません。
  • ホスト D は、CPU、ゾーン、およびenv=prodラベル要求を満たしますが、RHEL7のos要求を満たさないため、割り当てられません。

クラスターのデフォルトのワーカー・プールのすべてのゾーンに、ホストをワーカー・ノードとして割り当てる必要があります。 デフォルトのワーカー・プールが複数のゾーンにまたがっている場合は、各ゾーンに割り当てが可能な、一致するラベルを各ホストに設定しておく必要があります。

ホストの自動割り当て

IBM Cloud Satellite cpu などのホストラベルを使用して、クラスタ内のワーカープールに、演算能力を要求するホストを自動的に割り当てます。

始める前に、 Satellite クラスターを作成していることを確認してください。 CLI でクラスターを作成する場合は、 --workers オプションに、自動的に割り当てるホストの数を指定する必要があります。 次に、 Satellite の場所に ホストを接続 していることを確認します。ただし、ホストをリソースに割り当てないでください。

  1. ワーカー・プールがコンピュート容量を要求するために使用するホスト・ラベルを確認します。 いくつかのオプションがあります。

    • 自動割り当てに使用するホスト・ラベルを使用して、Satellite クラスターでワーカー・プールを作成します。
    • 既存のワーカー・プールのホスト・ラベルを確認します。 ワーカー・プールのホスト・ラベルは更新できないことに注意してください。 ibmcloud oc worker-pool get -c <cluster> --worker-pool <worker_pool> コマンドを実行して、ホスト・ラベル を確認できます。
    • Satellite 対応 IBM Cloud サービス・クラスターが Satellite 対応 IBM Cloud サービス・インスタンス・コンソールからリソースを要求するために使用するホスト・ラベルを確認します。
  2. 使用可能なホストのホスト・ラベルを確認します。 ホストを Satellite ロケーションに接続すると、ホストは自動的に cpu と memory のラベルを取得することに注意してください。

    1. Satellite ロケーションの名前を取得します。
        ibmcloud sat location ls
        ```
    2. ロケーション内の使用可能な (未割り当ての) ホストをリストし、ラベルを確認するホストの ID をメモします。
    ```sh {: pre}
        ibmcloud sat host ls --location LOCATION_NAME_OR_ID | grep unassigned
        ```
    3. 確認するホストごとに、ホストの詳細を取得し、出力の **Labels** をメモします。
    ```sh {: pre}
        ibmcloud sat host get --location LOCATION_NAME_OR_ID --host HOST_NAME_OR_ID
        ```
        出力例
        ```sh {: screen}
        ...
        Labels      
        app      webserver   
        cpu      4   
        memory   3874564
        os       RHCOS
        ...
        ```
    
  3. 使用可能なホストのラベルを更新して、ホストを自動割り当てに使用できるようにするワーカー・プールのすべてのラベルと一致させます。 オプションで、ゾーンを指定して、そのゾーンにのみホストが自動的に割り当てられるようにすることができます。

    ホスト上のcpu、os、およびmemoryの各ラベルは自動的に適用され、編集することはできません。

    ibmcloud sat host update --location <location_name_or_ID> --host <host_name_or_ID> -hl <key=value> [-hl <key=value>] [--zone <zone1>]
    

ホスト自動割り当ての無効化

以下のアクションは、ワーカー・プールのホスト自動割り当てを無効にします。 後でホスト自動割り当てを再度有効にできます。

ホスト自動割り当ての再有効化

ホスト自動割り当てを無効にした場合は、自動割り当てを再度有効にすることができます。

  1. ワーカー・プールのホスト・ラベルに一致するラベルを持つ使用可能なホストがあることを確認します。
  2. ワーカー・プールのサイズを変更して、要求されたサイズをゾーンごとに設定します。ワーカー・プールの再バランスを行い、自動割り当てを再度有効にします。

Satellite クラスタの場合、ワーカープールにワーカーノードを手動で割り当てているときは、 ibmcloud oc worker-pool rebalance コマンドを使用しないでください。 手動で割り当てられたワーカーノードを含むプールの再バランス処理を行うと、予想される数よりも多くのワーカーノードが削除されてしまいます。