Isolation de Compute

Les applications Kf peuvent être déployées sur des nœuds dédiés dans le cluster. Cette fonctionnalité est requise dans les cas où vous pouvez avoir besoin de contrôler davantage un nœud dans lequel un pod d'application arrive. Par exemple, si vous partagez le même cluster pour différentes applications, mais que vous souhaitez disposer de nœuds dédiés pour une application particulière ou de nœuds dédiés pour une organisation donnée (espace Kf), afin de cibler un système d'exploitation spécifique tel que Windows ou de 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 arrivent, puis ajoutez les mêmes libellés éligibles sur l'espace Kf. Toutes les applications installées dans cet espace arrivent alors 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 (pack de création) utilisée pour créer et empaqueter l'application. Par exemple, si vous souhaitez que vos applications créées avec spaceStacksV2 atterrissent 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 la pile.

  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 
    .....
    .....