Le app Kf possono essere implementate 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 nodi dedicati per una determinata app, se vuoi nodi dedicati per una determinata organizzazione(spazio Kf), per scegliere come target un sistema operativo specifico come Windows o per collocare in modo co-localizzato i pod di due servizi diversi che comunicano di frequente.
Per abilitare l'isolamento del calcolo, Kf utilizza nodeSelector di Kubernetes. Per utilizzare questa funzionalità, aggiungi prima le etichette ai nodi o ai node pool in cui vuoi che vengano caricati i pod di app, quindi aggiungi le stesse etichette idonee allo spazio Kf. Tutte le app installate in questo spazio verranno caricate sui nodi con le etichette corrispondenti.
Configurazione di nodeSelector in un cluster Kf
Per impostazione predefinita, l'isolamento del calcolo è disattivato. Utilizza la procedura riportata di seguito per configurare le etichette e nodeSelector.
Aggiungi un'etichetta (
distype=ssd
) al nodo in cui vuoi che vengano eseguiti i pod dell'applicazione.kubectl label nodes nodeid disktype=ssd
Aggiungi la stessa etichetta nello spazio Kf. Tutte le app di cui è stato eseguito il deployment in questo spazio verranno quindi caricate sui nodi idonei.
kf configure-space set-nodeselector space-name disktype ssd
Puoi aggiungere più etichette eseguendo di nuovo lo stesso comando.
Verifica che l'etichetta sia configurata.
kf configure-space get-nodeselector space-name
Eliminare l'etichetta dallo spazio.
kf configure-space unset-nodeselector space-name disktype
Sostituisci nodeSelector per gli stack kf
Il deployment delle app Kf può essere ulteriormente scelto come target in base allo stack (buildpack) utilizzato per creare e pacchettizzare l'app. Ad esempio, se vuoi che le tue applicazioni create con spaceStacksV2
vengano caricate su nodi con il kernel Linux 4.4.1. I valori nodeSelector
in uno stack sostituiscono i valori configurati nello spazio.
Per configurare nodeSelector
su Stack.
Modifica il
config-defaults
del cluster Kf e aggiungi le etichette.$ kubectl -n kf edit configmaps config-defaults
Aggiungi
nodeSelector
alla definizione degli stack...... ..... spaceStacksV2: | - name: cflinuxfs3 image: cloudfoundry/cflinuxfs3 nodeSelector: OS_KERNEL: LINUX_4.4.1 ..... .....