Kubernetes
Kubernetes 可以移動開始有乾擾工作負載的 Pod 嗎?
假設我有兩個 pod:一個用於提供網頁服務,另一個用於執行一致性計算,例如一個 pod 上的 Flask 伺服器和另一個 pod 上的 Spark Executor。
突然,一個新功能為 Flask 伺服器上的特定路由創建了大量流量。通常 Executor 是數字和一致的,Flask 伺服器是稀疏的並且記憶體/IO 綁定,但這會導致工作負載非常相似,並在該節點上停止 CPU。
Kubernetes 的調度程序能否辨識這一點並重新調度 pod?
不,它不能以這種方式工作。
一旦調度,K8s 不會跟踪 pod 的 cpu/memory/io。由您來衡量它並更改您的部署。
我不是說它做不到。我要說的是,k8s 並不是開箱即用的,而且我也不知道有任何第三方解決方案可以做到這一點。
這是我的建議,你可以做什麼:
既然你知道你不希望燒瓶和火花一起工作,你可以使用親和力功能。更具體地說:podAntiAffinity
您可以做的另一件事是設置 pod資源限制/請求。
通過這種方式,您可以確保 pod 僅使用其允許使用的資源量,因此它不會停止節點。通常認為添加 pod 資源約束是一種很好的做法。