Abilitazione dell'isolamento del computing

Il deployment di Kf Apps può avvenire su nodi dedicati nel cluster. Questa funzionalità è obbligatoria se ritieni di dover avere un maggiore controllo su un nodo in cui viene eseguito un pod di app. Ad esempio:

  • Se condividi lo stesso cluster per app diverse ma vuoi una piattaforma nodi per una particolare app.
  • Se vuoi nodi dedicati per una determinata organizzazione (Kf Space).
  • Se vuoi scegliere come target un sistema operativo specifico, ad esempio Windows.
  • Se vuoi collocare in modo co-localizzato i pod di due servizi diversi che si comunicano frequentemente.

Per abilitare l'isolamento del calcolo, Kf utilizza nodeSelector di Kubernetes. Per usare questa funzionalità, aggiungi prima le etichette ai nodi o ai pool di nodi in cui vuoi eseguire i pod di app, quindi aggiungi le stesse etichette idonee allo spazio Kf. Tutte le app installate in questo spazio vengono quindi caricate sui nodi con le etichette corrispondenti.

Configura nodeSelector in un cluster Kf

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

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

    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

Sostituisci nodeSelector per gli stack Kf

Deployment delle app Kf può essere ulteriormente mirata in base sullo stack (buildpack) utilizzato per creare e pacchettizzare l'app. Per Ad esempio, se vuoi che le tue applicazioni create con spaceStacksV2 vengano indirizzate con kernel Linux 4.4.1., I valori nodeSelector in uno stack sostituiscono il valore i valori configurati sullo spazio.

Per configurare nodeSelector in una serie:

  1. Modifica il 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 
    .....
    .....