Kf 应用可以部署在集群中的专用节点上。 如果您需要对应用 Pod 所在的节点进行更多控制,则需要使用此功能。例如:
- 如果要针对不同的应用共享同一个集群,但希望为特定应用保留专用节点。
- 如果您希望为给定组织(Kf 空间)保留专用节点。
- 如果您希望针对 Windows 等特定操作系统。
- 如果您希望将两项不同服务中经常通信的 Pod 放在同一位置。
为启用计算隔离功能,Kf 使用 Kubernetes nodeSelector。如需使用此功能,请先在您希望应用 Pod 所在的节点或节点池上添加标签,然后在 Kf Space 中添加相同的符合条件的标签。此空间中安装的所有应用都将登录具有匹配标签的节点。
在 Kf 集群中配置 nodeSelector
默认情况下,计算隔离处于停用状态。请按以下步骤配置标签和 nodeSelector。
在您希望应用 pod 访问的节点上添加一个标签 (
distype=ssd
)。kubectl label nodes nodeid disktype=ssd
在 Kf 空间上添加同一标签。此空间中部署的所有应用都将访问符合条件的节点。
kf configure-space set-nodeselector space-name disktype ssd
您可以通过再次运行同一命令来添加多个标签。
检查标签是否已配置。
kf configure-space get-nodeselector space-name
从空间中删除标签。
kf configure-space unset-nodeselector space-name disktype
替换 kf 堆栈的 nodeSelector
根据用于构建和封装应用的堆栈 (buildpack),可以进一步确定 Kf 应用的部署。例如,如果您希望使用 spaceStacksV2
构建的应用访问具有 Linux 内核 4.4.1 的节点。堆栈上的 nodeSelector
值会替换空间上配置的值。
如需在堆栈上配置 nodeSelector
,请执行以下操作:
修改 Kf 集群的
config-defaults
并添加标签。$ kubectl -n kf edit configmaps config-defaults
将
nodeSelector
添加到堆栈定义中。..... ..... spaceStacksV2: | - name: cflinuxfs3 image: cloudfoundry/cflinuxfs3 nodeSelector: OS_KERNEL: LINUX_4.4.1 ..... .....