Empêcher l'exécution de charges de travail d'application sur des noeuds worker de périphérie

Cloud privé virtuel Infrastructure classique

Un avantage des noeuds worker de périphérie est le fait qu'ils peuvent être définis pour n'exécuter que des services de mise en réseau.

Vous pouvez empêcher les charges de travail de s'exécuter sur les nœuds de travail Edge et de consommer les ressources des nœuds de travail en utilisant Kubernetes souillures.

Avant de commencer

  1. Créez un pool de travailleurs avec le libellé dedicated=edge ou ajoutez l'étiquette à l'un de vos pools de travailleurs existants.

    • Pour créer un pool de nœuds de calcul Classic, vous pouvez utiliser l'outil worker-pool create classic commande.
        ibmcloud oc worker-pool create classic --name POOL_NAME --cluster CLUSTER --flavor FLAVOR --size-per-zone WORKERS_PER_ZONE --hardware ISOLATION --label dedicated=edge
        ```
    * Pour créer un pool de nœuds de calcul VPC, vous pouvez utiliser l'outil `worker-pool create vpc-gen2` [commande](/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
        ```
    * Pour étiqueter un pool de nœuds de calcul existant, vous pouvez utiliser l'outil `worker-pool label set` [commande](/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. Vérifiez que le pool de noeuds worker et les noeuds worker comportent le libellé dedicated=edge.

    • Pour vérifier le pool de travailleurs, utilisez la commande get.
        ibmcloud ks worker-pool get --cluster CLUSTER_NAME_OR_ID --worker-pool WORKER_POOL_NAME_OR_ID
        ```
    * Pour vérifier les noeuds worker individuels, examinez la zone **Labels** de la sortie de la commande suivante :
    ```sh {: pre}
        kubectl describe node <worker_node_private_IP>
        ```
    
    
  3. Appliquez une teinte aux noeuds worker ayant le libellé dedicated=edge. La tache empêche les pods de s'exécuter sur le nœud worker et supprime les pods qui n'ont pas le libellé dedicated=edge du nœud worker. Les pods retirés sont redéployés sur d'autres noeuds worker dont la capacité le permet.

    Pour appliquer une tache à tous les noeuds worker existants et futurs dans un pool de noeuds worker :

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

    Pour appliquer une tache de manière individuelle à certains noeuds worker :

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

    Maintenant, seuls les pods ayant la tolérance dedicated=edge sont déployés sur vos noeuds worker de périphérie.

  4. Vérifiez qu'une tache est appliquée à vos noeuds de périphérie.

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

    Exemple de sortie :

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