指派具有主機標籤自動指派的主機

在叢集或 已啟用 Satellite 的 IBM Cloud 服務中,系統會根據主機標籤將主機自動指派至工作節點群組,以匹配可用的運算容量。 您可以啟用或停用自動指派功能。

Satellite 位置的控制平面不支援主機自動指派功能。

主機標籤

主機自動指派會將 Satellite 叢集中的工作執行程序池標籤,與可用主機上的主機標籤及區域標籤進行配對。

請記住下列用於自動指派之主機標籤的相關資訊。

預設主機標籤
當您將主機連接至 Satellite 位置時,主機會自動取得 cpu、os 及 memory 的標籤 (以位元組為單位)。 您無法移除這些標籤。 您可以包含其他主機標籤,或稍後更新主機 meta 資料。 如果主機不包含 os 標籤,則會自動假設為 RHEL7。
主機可以具有比工作者節點儲存區更多的標籤
舉例來說,一個具有 cpu、memory 及 env 主機標籤的主機,可以被自動指派至僅具有 cpu 主機標籤的工作者群組中。 主機自動指派符合 cpu 標籤。 反之則不成立:若某個工作池的標籤數量多於主機的標籤數量,則該主機將無法被自動指派至該工作池。
完全相符
主機標籤必須完全相等 (=)。 即使主機標籤是數字,也會使用不少於 (<)、大於 (>) 或其他運算子來進行比對。

主機自動指派的範例實務

假設您具有 Satellite 叢集,且在 us-east-1a 中具有 default 工作者節點儲存區及下列主機標籤。

  • 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-enabled IBM Cloud 服務叢集用來從 Satellite-enabled 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. 針對您要檢查的每一個主機,取得主機詳細資料,並注意輸出中的 **標籤**。
    ```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 指令。 對手動指派工作節點的叢集進行重新平衡時,移除的工作節點數量會超過預期數量。