Activer l'isolation de calcul

Les applications Kf peuvent être déployées sur des nœuds dédiés dans le cluster. Cette fonctionnalité est requise lorsque vous avez besoin d'un meilleur contrôle sur le choix du nœud dans lequel un pod d'application est placé. Exemple :

  • Si vous partagez le même cluster pour différentes applications, mais que vous souhaitez utiliser des nœuds dédiés pour une application spécifique.
  • Si vous souhaitez utiliser des nœuds dédiés pour une organisation donnée (espace Kf).
  • Si vous souhaitez cibler un système d'exploitation spécifique tel que Windows.
  • Si vous souhaitez colocaliser les pods de deux services différents qui communiquent fréquemment.

Pour activer l'isolation de calcul, Kf utilise nodeSelector Kubernetes. Pour utiliser cette fonctionnalité, commencez par ajouter des libellés sur les nœuds ou les pools de nœuds dans lesquels vous souhaitez que vos pods d'application soient placés, puis ajoutez les mêmes libellés d'éligibilité sur l'espace Kf. Toutes les applications installées dans cet espace seront placées sur les nœuds avec des libellés correspondants.

Configurer nodeSelector dans un cluster Kf

L'isolation de calcul est désactivée par défaut. Procédez comme suit pour configurer les libellés et nodeSelector.

  1. Ajoutez un libellé (distype=ssd) sur le nœud dans lequel vous souhaitez que vos pods d'application arrivent.

    kubectl label nodes nodeid disktype=ssd
    
  2. Ajoutez le même libellé dans l'espace Kf. Toutes les applications déployées dans cet espace atterrissent alors sur les nœuds éligibles.

    kf configure-space set-nodeselector space-name disktype ssd
    

    Vous pouvez ajouter plusieurs libellés en exécutant à nouveau la même commande.

  3. Vérifiez que le libellé est configuré.

    kf configure-space get-nodeselector space-name
    
  4. Supprimez le libellé de l'espace.

    kf configure-space unset-nodeselector space-name disktype
    

Ignorer la propriété nodeSelector pour les piles kf

Le déploiement des applications Kf peut être ciblé en fonction de la pile (buildpack) utilisée pour créer et empaqueter l'application. Par exemple, si vous souhaitez que vos applications créées avec spaceStacksV2 soient placées sur des nœuds dotés du noyau Linux 4.4.1. Les valeurs nodeSelector d'une pile remplacent celles configurées dans l'espace.

Pour configurer nodeSelector sur une pile, procédez comme suit :

  1. Modifiez config-defaults de votre cluster Kf et ajoutez les libellés.

    $ kubectl -n kf edit configmaps config-defaults
    
  2. Ajoutez nodeSelector à la définition des piles.

    .....
    .....
    spaceStacksV2: |
    - name:  cflinuxfs3
            image: cloudfoundry/cflinuxfs3
            nodeSelector:
                  OS_KERNEL: LINUX_4.4.1
    .....
    .....