Blocco dell'esecuzione dei carichi di lavoro dell'applicazione sui nodi di lavoro edge

Virtual Private Cloud Infrastruttura classica

Uno dei vantaggi dei nodi di lavoro edge è che possono essere specificati per eseguire solo i servizi di rete.

Puoi impedire che i carichi di lavoro vengano eseguiti sui nodi di lavoro edge e consumino le risorse del nodo di lavoro utilizzando Kubernetes contaminazioni.

Prima di iniziare

  1. Crea un pool di lavoratori con l'etichetta dedicated=edge oppure aggiungi l'etichetta a uno dei tuoi pool di lavoratori esistenti.

    • Per creare un pool di lavoratori classico, puoi utilizzare il file worker-pool create classic comando.
        ibmcloud oc worker-pool create classic --name POOL_NAME --cluster CLUSTER --flavor FLAVOR --size-per-zone WORKERS_PER_ZONE --hardware ISOLATION --label dedicated=edge
        ```
    * Per creare un pool di nodi di lavoro VPC, puoi utilizzare il file `worker-pool create vpc-gen2` [comando](/docs/containers?topic=containers-kubernetes-service-cli#worker-pool-create-vpc-gen2-cli).
    ```sh {: pre}
        ibmcloud oc worker-pool create vpc-gen2 --name POOL_NAME --cluster CLUSTER --flavor FLAVOR --size-per-zone WORKERS_PER_ZONE --hardware ISOLATION --label dedicated=edge
        ```
    * Per etichettare un pool di nodi di lavoro esistente, puoi utilizzare il file `worker-pool label set` [comando](/docs/containers?topic=containers-kubernetes-service-cli#worker-pool-label-set-cli).
    ```sh {: pre}
        ibmcloud oc worker-pool label set --cluster CLUSTER --worker-pool POOL --label dedicated=edge
        ```
    
  2. Verifica che il pool di nodi di lavoro e i nodi di lavoro abbiano l'etichetta dedicated=edge.

    • Per verificare il pool di lavoratori, utilizzare il comando get.
        ibmcloud ks worker-pool get --cluster CLUSTER_NAME_OR_ID --worker-pool WORKER_POOL_NAME_OR_ID
        ```
    * Per controllare i singoli nodi di lavoro, esamina il campo **Labels** dell'output del seguente comando.
    ```sh {: pre}
        kubectl describe node <worker_node_private_IP>
        ```
    
    
  3. Applica un taint ai nodi di lavoro con l'etichetta dedicated=edge. Il "taint" impedisce l'esecuzione dei pod sul nodo di lavoro e rimuove dal nodo di lavoro i pod che non presentano l'etichetta " dedicated=edge ". I pod che vengono rimossi vengono ridistribuiti ad altri nodi di lavoro con capacità.

    Per applicare un taint a tutti i nodi di lavoro esistenti e futuri in un pool di nodi di lavoro:

    ibmcloud ks worker-pool taint set -c CLUSTER_NAME_OR_ID --worker-pool WORKER_POOL_NAME_OR_ID --taint dedicated=edge:NoExecute
    

    Per applicare un taint ai singoli nodi di lavoro:

    kubectl taint node -l dedicated=edge dedicated=edge:NoExecute
    

    Adesso, solo i pod con la tolleranza dedicated=edge vengono distribuiti ai tuoi nodi di lavoro edge.

  4. Verifica che i tuoi nodi edge siano con taint.

    kubectl describe nodes -l dedicated=edge | egrep "Taints|Hostname"
    

    Output di esempio:

    Taints:             dedicated=edge:NoExecute
        Hostname:    10.176.48.83
      Taints:             dedicated=edge:NoExecute
    Hostname:    10.184.58.7