Isolamento del computing

Il deployment di Kf Apps può avvenire su nodi dedicati nel cluster. Questa funzionalità è necessaria se hai i casi in cui vuoi un maggiore controllo su un nodo in cui viene inviato un pod dell'app. Ad esempio, se condividi lo stesso cluster per app diverse, ma vuoi nodi dedicati per una determinata app, se vuoi nodi dedicati per una determinata organizzazione(Kf Space), per scegliere come target un sistema operativo specifico come Windows o per co-localizzare i pod da due servizi diversi che comunicano spesso.

Per abilitare l'isolamento del calcolo, Kf utilizza nodeSelector di Kubernetes. Per utilizzare questa funzionalità, aggiungi prima etichette sui nodi o sui pool di nodi in cui vuoi inserire i pod dell'app, quindi aggiungi le stesse etichette idonee su Kf Space. Tutte le app installate in questo spazio si troveranno quindi sui nodi con etichette corrispondenti.

Configurazione di nodeSelector in un cluster Kf

Per impostazione predefinita, l'isolamento del calcolo è disabilitato. Utilizza la seguente procedura per configurare le etichette e nodeSelector.

  1. Aggiungi un'etichetta (distype=ssd) sul nodo in cui vuoi che vengano inseriti i pod dell'applicazione terra.

    kubectl label nodes nodeid disktype=ssd 
    
  2. Aggiungi la stessa etichetta allo spazio Kf. Tutte le app di cui è stato eseguito il deployment in questo spazio arriverà quindi ai nodi idonei.

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

    Puoi aggiungere più etichette eseguendo di nuovo lo stesso comando.

  3. Verifica che l'etichetta sia configurata.

    kf configure-space get-nodeselector space-name
    
  4. Elimina l'etichetta dallo spazio.

    kf configure-space unset-nodeselector space-name disktype
    

Esegui l'override di nodeSelector per kf Stack

Il deployment delle app Kf può essere ulteriormente valutato in base allo stack (buildpack) utilizzato per creare e pacchettizzare l'app. Ad esempio, se vuoi che le tue applicazioni create con spaceStacksV2 rimandino a nodi con kernel Linux 4.4.1. I valori di nodeSelector in un elenco filtri sostituiranno i valori configurati nello spazio.

Per configurare nodeSelector su Stack.

  1. Modifica config-defaults del cluster Kf e aggiungi le etichette.

    $ kubectl -n kf edit configmaps config-defaults
    
  2. Aggiungi nodeSelector alla definizione degli stack.

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