運算分隔

Kf 應用程式可部署在叢集中的專屬節點。如果您需要在應用程式 pod 所在的節點上享有更多控制權,就必須使用這項功能。舉例來說,如果您要為不同的應用程式共用同一個叢集,但希望為特定應用程式提供專屬節點,或是要為特定機構(Kf Space) 提供專屬節點、指定 Windows 等特定作業系統,或是將兩個經常通訊的不同服務的 Pod 放置在同一位置,

為了啟用運算分隔,Kf 會使用 Kubernetes nodeSelector。如要使用這項功能,請先在您希望應用程式 Pod 降落的節點或節點集區中新增標籤,然後在 Kf 空間中新增相同的符合條件標籤。此時,在這個空間中安裝的所有應用程式都會連至標籤相符的節點。

在 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 Stacks 的 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 
    .....
    .....