Kf 應用程式可部署在叢集中的專屬節點。如果您需要在應用程式 pod 所在的節點上享有更多控制權,就必須使用這項功能。舉例來說,如果您要為不同的應用程式共用同一個叢集,但希望為特定應用程式提供專屬節點,或是要為特定機構(Kf Space) 提供專屬節點、指定 Windows 等特定作業系統,或是將兩個經常通訊的不同服務的 Pod 放置在同一位置,
為了啟用運算分隔,Kf 會使用 Kubernetes nodeSelector。如要使用這項功能,請先在您希望應用程式 Pod 降落的節點或節點集區中新增標籤,然後在 Kf 空間中新增相同的符合條件標籤。此時,在這個空間中安裝的所有應用程式都會連至標籤相符的節點。
在 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 Stacks 的 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 ..... .....