在Kubernetes中,節點親和性調度是一種強大的機制,它允許您根據節點的標簽將工作負載精確地調度到具有特定屬性(如GPU支持)的節點上。以下是如何配置和使用節點親和性調度策略的簡明指南。
配置節點親和性調度策略
標記節點:首先,確保您的GPU節點已被標記。在本例中,GPU節點被標記為gpu=true。
選擇調度策略:
不配置:如果不設置節點親和策略,Kubernetes將按照默認調度策略隨機分配Pod。
指定節點調度:直接指定Pod部署的節點,適用于已知確切部署位置的情況。
指定節點池調度:指定Pod部署的節點池,適用于節點池管理策略。
自定義親和策略:根據節點標簽實現靈活調度。
配置自定義親和策略:
選擇規則:在“自定義親和策略”中,選擇“必須滿足”或“盡量滿足”規則。
必須滿足:硬約束,Pod只能調度到滿足所有指定條件的節點上。
盡量滿足:軟約束,調度器會嘗試調度到滿足條件的節點,但即使不滿足也會進行調度。
設置參數:
權重(僅“盡量滿足”):取值1-100,作為調度時的附加評分項。
標簽名:需要匹配的節點標簽。
操作符:六種匹配關系(In、NotIn、Exists、DoesNotExist、Gt、Lt),用于定義標簽與值的匹配邏輯。
標簽值:與標簽名對應的值。
添加策略:在調度策略配置中,點擊“添加策略”并填寫上述參數。
快速選擇(可選):通過“指定節點調度”或“指定節點池調度”快速選擇目標節點或節點池,這些選項本質上也是基于標簽實現的便捷操作。
驗證調度結果
在Kubernetes集群控制臺中,導航到“工作負載”頁面。
點擊工作負載名稱進入詳情頁,查看實例列表。
確認所有Pod都已調度到包含gpu=true標簽的目標節點上。
通過上述步驟,您可以利用Kubernetes的節點親和性調度功能,確保高性能計算等特定需求的工作負載被精確地調度到合適的節點上,從而優化資源利用和性能表現。