前言
本筆記詳解,kubernetes調度器在調度時的策略
a:預選的策略
b:優選的策略,會考慮哪些維度,各個維度的權重如何
優選和預選考慮的機器負載指標(cpu+mem),不是線上實時的指標,而是分配出去的資源上下限! @hxx 這就要求我們分配的量是否和線上真實load是否成正相關關係!
正文
摘自 http://dockone.io/article/2885
1:預選策略
a: NoDiskConflict , pod所需的卷是否和節點已存在的卷衝突。如果節點已經掛載了某個卷,其它同樣使用這個卷的pod不能再調度到這個主機上。GCE、Amazon EBS與Ceph RBD的規則如下:
b:NoVolumeZoneConflict,假定一些volumes可能有zone調度約束,
VolumeZonePredicate根據volumes自身需求來評估pod是否滿足條件。@hxx 設置了雲區域中的卷衝突
c:PodFitsResources,檢查節點是否有足夠資源(例如 CPU、內存與GPU等)滿足一個Pod的運行需求。@hxx 與QoS相關,檢查是否有足夠的資源是指系統已經分配的資源,而不是當前node已經佔用的資源!
這個地方有個問題? 已經分配出去的資源指的是request總和,而不是limit,在雲搜機器中大部分的limit已經完全超過機器的總容量,如果是limit那麼所有機器都不可分配了!
d:PodFitsHostPorts:檢查Pod容器所需的HostPort是否已被節點上其它容器或服務佔用。
@hxx 如果pod設置了hostport,如雲搜queryproxy,那麼一個node上只會部署一個pod
e:HostName:檢查節點是