新聞中心
調(diào)度器性能調(diào)優(yōu)
FEATURE STATE: Kubernetes 1.14 [beta]

創(chuàng)新互聯(lián)2013年至今,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元東至做網(wǎng)站,已為上家服務(wù),為東至各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108
作為 kubernetes 集群的默認(rèn)調(diào)度器, ?kube-scheduler? 主要負(fù)責(zé)將 Pod 調(diào)度到集群的 Node 上。
在一個(gè)集群中,滿足一個(gè) Pod 調(diào)度請(qǐng)求的所有 Node 稱(chēng)之為 可調(diào)度 Node。 調(diào)度器先在集群中找到一個(gè) Pod 的可調(diào)度 Node,然后根據(jù)一系列函數(shù)對(duì)這些可調(diào)度 Node 打分, 之后選出其中得分最高的 Node 來(lái)運(yùn)行 Pod。 最后,調(diào)度器將這個(gè)調(diào)度決定告知 kube-apiserver,這個(gè)過(guò)程叫做 綁定(Binding)。
這篇文章將會(huì)介紹一些在大規(guī)模 Kubernetes 集群下調(diào)度器性能優(yōu)化的方式。
在大規(guī)模集群中,你可以調(diào)節(jié)調(diào)度器的表現(xiàn)來(lái)平衡調(diào)度的延遲(新 Pod 快速就位) 和精度(調(diào)度器很少做出糟糕的放置決策)。
你可以通過(guò)設(shè)置 kube-scheduler 的 ?percentageOfNodesToScore ?來(lái)配置這個(gè)調(diào)優(yōu)設(shè)置。 這個(gè) KubeSchedulerConfiguration 設(shè)置決定了調(diào)度集群中節(jié)點(diǎn)的閾值。
設(shè)置閾值
?percentageOfNodesToScore ?選項(xiàng)接受從 0 到 100 之間的整數(shù)值。 0 值比較特殊,表示 kube-scheduler 應(yīng)該使用其編譯后的默認(rèn)值。 如果你設(shè)置 ?percentageOfNodesToScore ?的值超過(guò)了 100, kube-scheduler 的表現(xiàn)等價(jià)于設(shè)置值為 100。
要修改這個(gè)值,先編輯 kube-scheduler 的配置文件 然后重啟調(diào)度器。 大多數(shù)情況下,這個(gè)配置文件是 ?/etc/kubernetes/config/kube-scheduler.yaml?。
修改完成后,你可以執(zhí)行
kubectl get pods -n kube-system | grep kube-scheduler
來(lái)檢查該 kube-scheduler 組件是否健康。
節(jié)點(diǎn)打分閾值
要提升調(diào)度性能,kube-scheduler 可以在找到足夠的可調(diào)度節(jié)點(diǎn)之后停止查找。 在大規(guī)模集群中,比起考慮每個(gè)節(jié)點(diǎn)的簡(jiǎn)單方法相比可以節(jié)省時(shí)間。
你可以使用整個(gè)集群節(jié)點(diǎn)總數(shù)的百分比作為閾值來(lái)指定需要多少節(jié)點(diǎn)就足夠。 kube-scheduler 會(huì)將它轉(zhuǎn)換為節(jié)點(diǎn)數(shù)的整數(shù)值。在調(diào)度期間,如果 kube-scheduler 已確認(rèn)的可調(diào)度節(jié)點(diǎn)數(shù)足以超過(guò)了配置的百分比數(shù)量, kube-scheduler 將停止繼續(xù)查找可調(diào)度節(jié)點(diǎn)并繼續(xù)進(jìn)行 打分階段。
默認(rèn)閾值
如果你不指定閾值,Kubernetes 使用線性公式計(jì)算出一個(gè)比例,在 100-節(jié)點(diǎn)集群 下取 50%,在 5000-節(jié)點(diǎn)的集群下取 10%。這個(gè)自動(dòng)設(shè)置的參數(shù)的最低值是 5%。
這意味著,調(diào)度器至少會(huì)對(duì)集群中 5% 的節(jié)點(diǎn)進(jìn)行打分,除非用戶將該參數(shù)設(shè)置的低于 5。
如果你想讓調(diào)度器對(duì)集群內(nèi)所有節(jié)點(diǎn)進(jìn)行打分,則將 ?percentageOfNodesToScore ?設(shè)置為 100。
示例
下面就是一個(gè)將 ?percentageOfNodesToScore ?參數(shù)設(shè)置為 50% 的例子。
apiVersion: kubescheduler.config.K8S.io/v1alpha1
kind: KubeSchedulerConfiguration
algorithmSource:
provider: DefaultProvider
...
percentageOfNodesToScore: 50調(diào)節(jié) percentageOfNodesToScore 參數(shù)
?percentageOfNodesToScore ?的值必須在 1 到 100 之間,而且其默認(rèn)值是通過(guò)集群的規(guī)模計(jì)算得來(lái)的。 另外,還有一個(gè) 50 個(gè) Node 的最小值是硬編碼在程序中。
值得注意的是,該參數(shù)設(shè)置后可能會(huì)導(dǎo)致只有集群中少數(shù)節(jié)點(diǎn)被選為可調(diào)度節(jié)點(diǎn), 很多節(jié)點(diǎn)都沒(méi)有進(jìn)入到打分階段。這樣就會(huì)造成一種后果, 一個(gè)本來(lái)可以在打分階段得分很高的節(jié)點(diǎn)甚至都不能進(jìn)入打分階段。
由于這個(gè)原因,這個(gè)參數(shù)不應(yīng)該被設(shè)置成一個(gè)很低的值。 通常的做法是不會(huì)將這個(gè)參數(shù)的值設(shè)置的低于 10。 很低的參數(shù)值一般在調(diào)度器的吞吐量很高且對(duì)節(jié)點(diǎn)的打分不重要的情況下才使用。 換句話說(shuō),只有當(dāng)你更傾向于在可調(diào)度節(jié)點(diǎn)中任意選擇一個(gè)節(jié)點(diǎn)來(lái)運(yùn)行這個(gè) Pod 時(shí), 才使用很低的參數(shù)設(shè)置。
調(diào)度器做調(diào)度選擇的時(shí)候如何覆蓋所有的 Node
如果你想要理解這一個(gè)特性的內(nèi)部細(xì)節(jié),那么請(qǐng)仔細(xì)閱讀這一章節(jié)。
在將 Pod 調(diào)度到節(jié)點(diǎn)上時(shí),為了讓集群中所有節(jié)點(diǎn)都有公平的機(jī)會(huì)去運(yùn)行這些 Pod, 調(diào)度器將會(huì)以輪詢(xún)的方式覆蓋全部的 Node。 你可以將 Node 列表想象成一個(gè)數(shù)組。調(diào)度器從數(shù)組的頭部開(kāi)始篩選可調(diào)度節(jié)點(diǎn), 依次向后直到可調(diào)度節(jié)點(diǎn)的數(shù)量達(dá)到 ?percentageOfNodesToScore ?參數(shù)的要求。 在對(duì)下一個(gè) Pod 進(jìn)行調(diào)度的時(shí)候,前一個(gè) Pod 調(diào)度篩選停止的 Node 列表的位置, 將會(huì)來(lái)作為這次調(diào)度篩選 Node 開(kāi)始的位置。
如果集群中的 Node 在多個(gè)區(qū)域,那么調(diào)度器將從不同的區(qū)域中輪詢(xún) Node, 來(lái)確保不同區(qū)域的 Node 接受可調(diào)度性檢查。如下例,考慮兩個(gè)區(qū)域中的六個(gè)節(jié)點(diǎn):
Zone 1: Node 1, Node 2, Node 3, Node 4
Zone 2: Node 5, Node 6調(diào)度器將會(huì)按照如下的順序去評(píng)估 Node 的可調(diào)度性:
Node 1, Node 5, Node 2, Node 6, Node 3, Node 4
在評(píng)估完所有 Node 后,將會(huì)返回到 Node 1,從頭開(kāi)始。
當(dāng)前標(biāo)題:創(chuàng)新互聯(lián)kubernetes教程:Kubernetes調(diào)度器性能調(diào)優(yōu)
文章網(wǎng)址:http://m.fisionsoft.com.cn/article/dhispcc.html


咨詢(xún)
建站咨詢(xún)
