Stay organized with collections
Save and categorize content based on your preferences.
Kf Apps can be deployed on dedicated nodes in the cluster.
This feature is required if you have the circumstances where you might want more
control on a node where an App Pod lands. For example:
If you are sharing the same cluster for different Apps but want dedicated
nodes for a particular App.
If you want dedicated nodes for a given organization (Kf Space).
If you want to target a specific operating system like Windows.
If you want to co-locate Pods from two different services that frequently
communicate.
To enable compute isolation, Kf uses the Kubernetes nodeSelector. To
use this feature, first add labels on the nodes or node pools where you want
your App Pods to land and then add the same qualifying labels on the Kf Space.
All the Apps installed in this Space then land on the nodes with matching labels.
Configure nodeSelector in a Kf cluster
By default, compute isolation is disabled. Use the following procedure
to configure labels and nodeSelector.
Add a label (distype=ssd) on the node where you want your application pods to
land.
kubectllabelnodesnodeiddisktype=ssd
Add the same label on the Kf Space. All Apps deployed in this Space
will then land on the qualifying nodes.
Deployment of Kf Apps can be further targeted based
on what stack (buildpack) is being used to build and package the App. For
example, if you want your applications built with spaceStacksV2 to land on
nodes with Linux kernel 4.4.1., nodeSelector values on a stack override the
values configured on the Space.
To configure the nodeSelector on a stack:
Edit the config-defaults of your Kf cluster and add the labels.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-29 UTC."],[],[],null,["# Enable compute isolation\n\nKf Apps can be deployed on dedicated nodes in the cluster.\nThis feature is required if you have the circumstances where you might want more\ncontrol on a node where an App Pod lands. For example:\n\n- If you are sharing the same cluster for different Apps but want dedicated nodes for a particular App.\n- If you want dedicated nodes for a given organization (Kf Space).\n- If you want to target a specific operating system like Windows.\n- If you want to co-locate Pods from two different services that frequently communicate.\n\nTo enable compute isolation, Kf uses the Kubernetes [nodeSelector](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node). To\nuse this feature, first add labels on the nodes or node pools where you want\nyour App Pods to land and then add the same qualifying labels on the Kf Space.\nAll the Apps installed in this Space then land on the nodes with matching labels.\n\nConfigure nodeSelector in a Kf cluster\n--------------------------------------\n\nBy default, compute isolation is disabled. Use the following procedure\nto configure labels and nodeSelector.\n\n1. Add a label (`distype=ssd`) on the node where you want your application pods to\n land.\n\n kubectl label nodes \u003cvar translate=\"no\"\u003enodeid\u003c/var\u003e disktype=ssd\n\n2. Add the same label on the Kf Space. All Apps deployed in this Space\n will then land on the qualifying nodes.\n\n kf configure-space set-nodeselector \u003cvar translate=\"no\"\u003espace-name\u003c/var\u003e disktype ssd\n\n You can add multiple labels by running the same command again.\n3. Check the label is configured.\n\n kf configure-space get-nodeselector \u003cvar translate=\"no\"\u003espace-name\u003c/var\u003e\n\n4. Delete the label from the space.\n\n kf configure-space unset-nodeselector \u003cvar translate=\"no\"\u003espace-name\u003c/var\u003e disktype\n\nOverride nodeSelector for [Kf stacks](/migrate/kf/docs/2.7/cli/kf-stacks)\n-------------------------------------------------------------------------\n\nDeployment of Kf Apps can be further targeted based\non what stack (buildpack) is being used to build and package the App. For\nexample, if you want your applications built with `spaceStacksV2` to land on\nnodes with Linux kernel 4.4.1., `nodeSelector` values on a stack override the\nvalues configured on the Space.\n\nTo configure the `nodeSelector` on a stack:\n\n1. Edit the `config-defaults` of your Kf cluster and add the labels.\n\n $ kubectl -n kf edit configmaps config-defaults\n\n2. Add `nodeSelector` to the stacks definition.\n\n .....\n .....\n spaceStacksV2: |\n - name: cflinuxfs3\n image: cloudfoundry/cflinuxfs3\n nodeSelector:\n OS_KERNEL: LINUX_4.4.1 \n .....\n ....."]]