启用计算隔离

Kf 应用可以部署在集群中的专用节点上。 如果您需要对应用 Pod 所在的节点进行更多控制,则需要使用此功能。例如:

  • 如果要针对不同的应用共享同一个集群,但希望为特定应用保留专用节点。
  • 如果您希望为给定组织(Kf 空间)保留专用节点。
  • 如果您希望针对 Windows 等特定操作系统。
  • 如果您希望将两项不同服务中经常通信的 Pod 放在同一位置。

为启用计算隔离功能,Kf 使用 Kubernetes nodeSelector。如需使用此功能,请先在您希望应用 Pod 所在的节点或节点池上添加标签,然后在 Kf Space 中添加相同的符合条件的标签。此空间中安装的所有应用都将登录具有匹配标签的节点。

在 Kf 集群中配置 nodeSelector

默认情况下,计算隔离处于停用状态。请按以下步骤配置标签和 nodeSelector。

  1. 在您希望应用 pod 访问的节点上添加一个标签 (distype=ssd)。

    kubectl label nodes nodeid disktype=ssd
  2. 在 Kf 空间上添加同一标签。此空间中部署的所有应用都将访问符合条件的节点。

    kf configure-space set-nodeselector space-name disktype ssd

    您可以通过再次运行同一命令来添加多个标签。

  3. 检查标签是否已配置。

    kf configure-space get-nodeselector space-name
  4. 从空间中删除标签。

    kf configure-space unset-nodeselector space-name disktype

替换 kf 堆栈的 nodeSelector

根据用于构建和封装应用的堆栈 (buildpack),可以进一步确定 Kf 应用的部署。例如,如果您希望使用 spaceStacksV2 构建的应用访问具有 Linux 内核 4.4.1 的节点。堆栈上的 nodeSelector 值会替换空间上配置的值。

如需在堆栈上配置 nodeSelector,请执行以下操作:

  1. 修改 Kf 集群的 config-defaults 并添加标签。

    $ kubectl -n kf edit configmaps config-defaults
    
  2. nodeSelector 添加到堆栈定义中。

    .....
    .....
    spaceStacksV2: |
    - name:  cflinuxfs3
            image: cloudfoundry/cflinuxfs3
            nodeSelector:
                  OS_KERNEL: LINUX_4.4.1 
    .....
    .....