Assegnazione automatica di host con etichetta host

Gli host vengono assegnati automaticamente ai pool di worker nei cluster o nei servizi di " Satellite " di IBM Cloud, utilizzando le etichette degli host per abbinarli alla capacità di calcolo disponibile. È possibile attivare o disattivare l'assegnazione automatica.

L'assegnazione automatica dell'host non è disponibile per il piano di controllo della sede Satellite.

Etichette host

L'assegnazione automatica degli host abbina le etichette del pool di worker nei cluster " Satellite " alle etichette degli host e delle zone sugli host disponibili.

Tenere a mente le seguenti informazioni sulle etichette host utilizzate per l'assegnazione automatica.

Etichette host predefinite
Quando colleghi un host a un'ubicazione Satellite, l'host ottiene automaticamente le etichette per cpu, os e memory (in byte). Non è possibile rimuovere queste etichette. È possibile includere ulteriori etichette host o aggiornare i metadati host in un secondo momento. Se l'host non include l'etichetta os, viene automaticamente assunto come RHEL7.
Gli host possono avere più etichette dei pool di lavoro
Ad esempio, un host con le etichette cpu, memory e env può essere assegnato automaticamente a un pool di worker che presenta solo l'etichetta cpu. L'assegnazione automatica dell'host corrisponde alle etichette cpu. Il contrario non è vero: se un pool di worker ha più etichette rispetto a un host, l'host non può essere assegnato automaticamente a quel pool di worker.
La corrispondenza è esatta
Le etichette host devono essere esattamente uguali (=). Anche se l'etichetta host è un numero, per la corrispondenza vengono utilizzati non meno di (<), più di (>) o altri operatori.

Scenario di esempio per l'assegnazione automatica dell'host

Dì di avere un cluster Satellite con un pool di nodi di lavoro default in us-east-1a e le seguenti etichette host.

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

La tua ubicazione Satellite ha host disponibili (non assegnati) con etichette host come segue.

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

Se si ridimensiona il pool di nodi di lavoro default per richiedere altri 3 nodi di lavoro, è possibile assegnare automaticamente solo l'host C, ma non l'host A o l'host B.

  • L'host A gestisce le richieste relative all'unità centrale di elaborazione (CPU) e all'etichett env=prod, ma può essere assegnato solo in us-east-1b. Poiché il pool di nodi di lavoro default è solo in us-east-1a, l'host A non viene assegnato.
  • L'host B soddisfa le richieste di CPU e zona. Tuttavia, l'host non ha l'etichetta env=prod e quindi non è assegnato.
  • L'host C viene assegnato automaticamente perché corrisponde alle etichette host cpu=4 e env=prod e non ha alcuna limitazione di zona. L'etichetta host memory=64 non viene considerata perché il pool di nodi di lavoro non richiede un'etichetta memory.
  • L'host D soddisfa le richieste di CPU, zona e etichetta env=prod, ma non soddisfa la richiesta os di RHEL7 e quindi non è assegnato.

Gli host devono essere assegnati come nodi di lavoro in ciascuna zona del pool di nodi di lavoro predefinito nel tuo cluster. Se il tuo pool di nodi di lavoro predefinito si estende su più zone, assicurati di avere host con etichette corrispondenti che possono essere assegnate in ogni zona.

Assegnazione automatica degli host

IBM Cloud Satellite assegna automaticamente gli host ai pool di worker nei cluster che richiedono capacità di calcolo utilizzando etichette di host quali cpu.

Prima di iniziare, assicurati di creare un cluster Satellite. Se si crea un cluster in CLI, è necessario specificare l'opzione --workers con il numero di host che si desidera assegnare automaticamente. Assicurati quindi di collegare gli host alla tua ubicazione Satellite, ma non assegnare gli host ad alcuna risorsa.

  1. Esamina le etichette host utilizzate dai pool di nodi di lavoro per richiedere la capacità di calcolo. Sono disponibili diverse opzioni.

    • Crea un pool di nodi di lavoro in un cluster Satellite con le etichette host che desideri utilizzare per l'assegnazione automatica.
    • Esaminare i pool di lavoro esistenti per le relative etichette host. Nota che non puoi aggiornare le etichette host di un pool di nodi di lavoro. È possibile esaminare Etichette host eseguendo il comando ibmcloud oc worker-pool get -c <cluster> --worker-pool <worker_pool>.
    • Esamina le etichette host che un cluster di servizio Satellite-enabled IBM Cloud utilizza per richiedere risorse dalla console dell'istanza del servizio Satellite-enabled IBM Cloud.
  2. Esaminare le etichette host di cui dispongono gli host disponibili. Ricorda che gli host ricevono automaticamente le etichette cpu e memory quando colleghi l'host alla tua ubicazione Satellite.

    1. Ottieni il nome ubicazione Satellite.
        ibmcloud sat location ls
        ```
    2. Elencare gli host disponibili (non assegnati) nella propria ubicazione e annotare gli ID degli host per cui si desidera controllare le etichette.
    ```sh {: pre}
        ibmcloud sat host ls --location LOCATION_NAME_OR_ID | grep unassigned
        ```
    3. Per ogni host che vuoi controllare, ottieni i dettagli host e prendi nota delle **Etichette** nell'output.
    ```sh {: pre}
        ibmcloud sat host get --location LOCATION_NAME_OR_ID --host HOST_NAME_OR_ID
        ```
        Output di esempio
        ```sh {: screen}
        ...
        Labels      
        app      webserver   
        cpu      4   
        memory   3874564
        os       RHCOS
        ...
        ```
    
  3. Aggiornare le etichette del proprio host disponibile in modo che corrispondano a tutte le etichette del pool di lavoro che si desidera che l'host sia disponibile per l'assegnazione automatica. Facoltativamente, è possibile specificare una zona per assicurarsi che l'host venga assegnato automaticamente solo a tale zona.

    Le etichette cpu, os e memory sull'host vengono applicate automaticamente e non possono essere modificate.

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

Disabilitazione dell'assegnazione automatica dell'host

Le seguenti azioni disabilitano l'assegnazione automatica dell'host per un pool di lavoro. Successivamente, è possibile riabilitare l'assegnazione automatica dell'host.

Riabilita assegnazione automatica host

Se è stata disabilitata l'assegnazione automatica dell'host, è possibile riabilitare l'assegnazione automatica.

  1. Assicurati di avere host disponibili con etichette che corrispondono alle etichette host del pool di nodi di lavoro.
  2. Ridimensionare il pool di nodi di lavoro per impostare la dimensione richiesta per zona, ribilanciare il pool di nodi di lavoro e abilitare nuovamente l'assegnazione automatica.

Per i cluster “ Satellite ”, non utilizzare il comando “ ibmcloud oc worker-pool rebalance ” se hai assegnato manualmente i nodi di lavoro al tuo pool di worker. Il ribilanciamento di un pool con nodi di lavoro assegnati manualmente comporta la rimozione di un numero di nodi di lavoro superiore a quello previsto.