Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Les applications Kf peuvent être déployées sur des nœuds dédiés dans le cluster.
Cette fonctionnalité est requise lorsque vous avez besoin d'un meilleur contrôle sur le choix du nœud dans lequel un pod d'application est placé. Par exemple :
Si vous partagez le même cluster pour différentes applications, mais que vous souhaitez utiliser des nœuds dédiés pour une application spécifique.
Si vous souhaitez utiliser des nœuds dédiés pour une organisation donnée (espace Kf).
Si vous souhaitez cibler un système d'exploitation spécifique tel que Windows.
Si vous souhaitez 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 soient placés, puis ajoutez les mêmes libellés d'éligibilité sur l'espace Kf.
Toutes les applications installées dans cet espace seront placées sur les nœuds avec des libellés correspondants.
Kf crée un pod Kubernetes pour exécuter chaque compilation Kf. La fonctionnalité buildNodeSelector peut être utilisée pour isoler les ressources de calcul afin de n'exécuter que les pods de compilation. Un cas d'utilisation consiste à isoler les pods de compilation pour qu'ils s'exécutent sur des nœuds avec SSD, tout en exécutant les pods d'application sur d'autres nœuds. La fonctionnalité BuildNodeSelectors assure l'optimisation des ressources de calcul et la flexibilité dans le cluster. Veuillez consulter le chapitre "Configurer BuildNodeSelectors et un pool de nœuds de compilation" sur cette page.
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.
Ajoutez un libellé (distype=ssd) sur le nœud dans lequel vous souhaitez que vos pods d'application arrivent.
kubectllabelnodesnodeiddisktype=ssd
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.
Ignorer la propriété nodeSelector pour les piles kf
Le déploiement des applications Kf peut être ciblé en fonction de la pile (buildpack) utilisée pour créer et empaqueter l'application. Par exemple, si vous souhaitez que vos applications créées avec spaceStacksV2 soient placées 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 une pile, procédez comme suit :
Modifiez config-defaults de votre cluster Kf et ajoutez les libellés.
Configurer la propriété BuildNodeSelectors et un pool de nœuds de compilation
Les sélecteurs de nœuds de compilation ne sont efficaces que pour remplacer les sélecteurs de nœuds des pods de compilation. Ils n'affectent pas les pods d'application. Par exemple, si vous spécifiez à la fois les sélecteurs de nœuds dans l'espace et les sélecteurs de nœuds de compilation dans Kfsystem, les pods d'application auront les sélecteurs de nœuds d'espace tandis que les pods de compilation auront les sélecteurs de nœuds de compilation de Kfsystem. Si les sélecteurs de nœuds ne sont spécifiés que dans l'espace, les pods d'application et de compilation disposeront du sélecteur de nœuds de l'espace.
Ajoutez des étiquettes (par exemple, disktype:ssd) aux nœuds auxquels vous souhaitez attribuer vos pods de compilation.
kubectllabelnodesnodeiddisktype=ssd
Ajoutez/mettez à jour des sélecteurs de nœuds de compilation (au format des paires key:value) en appliquant un correctif à la RS KfSystem.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/04 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/04 (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\nKf creates a Kubernetes pod to execute each Kf Build, the buildNodeSelector feature can be used to isolate compute resources to execute only the Build pods. One use case is to isolate Build pods to run on nodes with SSD, while running the App pods on other nodes. The BuildNodeSelectors feature provides compute resource optimization and flexibility in the cluster. Please refer to chapter 'Configure BuildNodeSelectors and a build node pool' on this page.\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.10/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 .....\n\nConfigure BuildNodeSelectors and a Build node pool\n--------------------------------------------------\n\nBuild node selectors are only effective at overriding the node selectors for the Build pods, they do not affect App pods. For example, if you specify both the node selectors on the Space and the Build node selectors in Kfsystem, App pods will have the Space node selectors while the Build pods will have the Build node selectors from Kfsystem; if node selectors are only specified in the Space, both the App and Build pods will have the node selector from the Space.\n\n1. Add labels (`disktype:ssd` for example) on the nodes that you want your Build pods to be assigned to.\n\n kubectl label nodes \u003cvar translate=\"no\"\u003enodeid\u003c/var\u003e disktype=ssd\n\n2. Add/update Build node selectors (in the format of `key:value` pairs) by patching KfSystem CR.\n\n kubectl patch kfsystem kfsystem --type='json' -p='[{'op': 'replace', 'path': '/spec/kf/config/buildNodeSelectors', 'value': {\u003ckey\u003e:\u003cvalue\u003e}}]'\n\n For example, to add `disktype=ssd` as the Build node selector: \n\n kubectl patch kfsystem kfsystem --type='json' -p='[{'op': 'replace', 'path': '/spec/kf/config/buildNodeSelectors', 'value': {\"disktype\":\"ssd\"}}]'"]]