k8s調度漫談

Kubernetes Scheduler 的作用是將待調度的 Pod 按照一定的調度算法和策略綁定到集群中一個合適的 Worker Node(以下簡稱 Node) 上澎办,并將綁定信息寫入到 etcd 中赛惩,之后目標 Node 中 kubelet 服務通過 API Server 監(jiān)聽到 Scheduler 產生的 Pod 綁定事件獲取 Pod 信息,然后下載鏡像啟動容器

從步驟上分為兩步:

  1. 預選,K8S會遍歷當前集群中的所有 Node榕莺,篩選出其中符合要求的 Node 作為候選
  2. 優(yōu)選俐芯,K8S將對候選的 Node 進行打分

當我在試著理解這兩個步驟的過程中,我不禁問了自己一個問題:如果沒有k8s這種容器編排系統钉鸯,也沒有docker, 同樣也面臨著大規(guī)模服務部署吧史,應該怎么做?

假設開發(fā)使用java完成了服務fun開發(fā)工作唠雕,然后將fun打成jar包扔給我部署(傳統部署常規(guī)操作)贸营,我只有有限的物理機,這些物理機上也零散的部署了其它服務岩睁,這個時候我會想一個問題:我應該將這個服務部署在哪臺機器上钞脂?

首先能想到的是找資源最空閑的機器,資源包括:

  • CPU
  • 內存
  • 硬盤
    ...

也就是收集各物理機的可用資源進行編譯捕儒,如(cpu+內存+硬盤)

  1. s1: 2cpu+2G+20G
  2. s2: 1cpu+3G+10G
  3. s3: 5cpu+1G+200G
    ...

假設服務fun需要的資源是:0.2cpu+0.5G+1G冰啃,很顯然,前3臺機器都可以滿足需求刘莹,那為了保險起見阎毅,剩余可用資源當然是越多越好,那現在這種看似都可選的情況該如何是好呢点弯?我能想的是排序扇调,根據什么排序?權重抢肛,fun對資源的依賴也有權重的狼钮,比如權重由大到小的排序是 cpu->內存->硬盤, 權值分別為:3捡絮,2燃领,1
根據加權得到的結果是:

  1. s1: 2cpu+2G+20G -> 23+22+20=30
  2. s2: 1cpu+3G+10G -> 13+32+10=19
  3. s3: 5cpu+1G+200G -> 53+12+200=217
    ...

從我們定義的權重規(guī)則計算得到的結果看s3得分最高,所以目前s3是最佳選擇
這里可能存在一個問題锦援,就是比如我有1w臺機器猛蔽,那就需要獲取這1w臺機器的可用cpu、可用內存灵寺、可用硬盤曼库,然后加權,排序略板,取得分最高的機器毁枯,假設每臺機器獲取可用資源用時:1ms,那1w臺就需要10s, 這是相當可觀的時間叮称,假如最后的結果只有s1,s2,s3滿足條件种玛,也就是說剩余的9997臺機器是不符合需求的藐鹤,這基本上最差的情況的,此時應該如何赂韵?尋求局部最優(yōu)解

  • 全局最優(yōu): 1w臺機器里面加權后得分最高的機器
  • 局部最優(yōu): 前10臺機器里面加權后得分最高的機器

如果需要高可用部署娱节,我們往往需要部署多個服務實例,比如說3個fun祭示,高可用是為了避免其中某個實例因意外比如宕機而引起服務不可用肄满,那顯然最好的方式是fun服務分別部署在三臺不同的物理機上,也就是說fun服務的三個實例在物理機上部署是互斥的质涛。

再比如:fun服務需要強依賴服務dp稠歉,從通信角度講,本機通信顯然要比跨主機通訊要快也更穩(wěn)定汇陆,所以此時我更傾向于將fundp部署在一臺主機上怒炸。

在了解k8s的調度器之前我不會想到這些問題,初步了解之后毡代,就有些先入為主了横媚,k8s的調度所做的事情,在傳統運維部署的過程中月趟,同樣也會遇到灯蝴,或許也是這樣做的,所以會想到一個問題孝宗?k8s到底解決了什么問題穷躁?

首先k8s肯定解決了調度問題?上述的fun服務往往不是孤單的因妇,它需要依賴服務dp问潭,同樣其它服務也需要依賴fun,就依賴就需要知道服務地址婚被,那就需要服務發(fā)現了狡忙?k8s有coredns;需要將fun服務暴露到k8s集群外?沒問題址芯,k8s有ingress灾茁,在k8s之前,nginx在做著同樣的事情; 需要統一日志進行分析谷炸?可以接入nfs/ceph (當然北专,用沒用k8s都可以接入這兩個文件系統)......

乍一看,k8s似乎沒有解決新的問題旬陡?我的感覺拓颓,k8s解決的最大問題是:物理無關(怎么想起與女無瓜這個梗)。就是說我不需要關注物理機器了描孟,我不需要關心我的服務部署在哪臺真實的物理機器/ecs上驶睦,我的部署與調度都是基于資源來進行的砰左,我只知道有這個集群可以部署服務即可,至于這個集群是怎么保持可用性的场航、怎么擴展的缠导、機器狀況如何,我不關心旗闽,當然這需要云計算的支持,我認為這也是為什么k8s會與云原生緊密結合的原因蜜另,沒有了云計算适室,k8s的威力會大打折扣。

經過這一番自我解讀举瑰,我好像有點了解到IAAS捣辆,k8s是作為基礎設施存在的,為了用好這個基礎設施此迅,我們還需要搭建一個PAAS汽畴,比如Rancher在這塊就做的很好。

通過調度功能來思考k8s設計的原因耸序,當然我理解的并非全部忍些,過程相當有意思,談不上抽絲剝繭坎怪,不過k8s確實做了很多事情罢坝,目前看做的還很好。

Refer:

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末搅窿,一起剝皮案震驚了整個濱河市嘁酿,隨后出現的幾起案子,更是在濱河造成了極大的恐慌男应,老刑警劉巖闹司,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異沐飘,居然都是意外死亡游桩,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門耐朴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來众弓,“玉大人,你說我怎么就攤上這事隔箍∥酵蓿” “怎么了?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵蜒滩,是天一觀的道長滨达。 經常有香客問我奶稠,道長,這世上最難降的妖魔是什么捡遍? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任锌订,我火速辦了婚禮,結果婚禮上画株,老公的妹妹穿的比我還像新娘辆飘。我一直安慰自己,他們只是感情好谓传,可當我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布蜈项。 她就那樣靜靜地躺著,像睡著了一般续挟。 火紅的嫁衣襯著肌膚如雪紧卒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天诗祸,我揣著相機與錄音跑芳,去河邊找鬼。 笑死直颅,一個胖子當著我的面吹牛博个,可吹牛的內容都是我干的。 我是一名探鬼主播功偿,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼坡倔,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了脖含?” 一聲冷哼從身側響起罪塔,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎养葵,沒想到半個月后征堪,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡关拒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年佃蚜,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片着绊。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡谐算,死狀恐怖,靈堂內的尸體忽然破棺而出归露,到底是詐尸還是另有隱情洲脂,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布剧包,位于F島的核電站恐锦,受9級特大地震影響往果,放射性物質發(fā)生泄漏。R本人自食惡果不足惜一铅,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一陕贮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧潘飘,春花似錦肮之、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至暴凑,卻和暖如春峦甩,著一層夾襖步出監(jiān)牢的瞬間赘来,已是汗流浹背现喳。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留犬辰,地道東北人嗦篱。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像幌缝,于是被迫代替她去往敵國和親灸促。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內容

  • 容器技術是微服務技術的核心技術之一涵卵,并隨著微服務的流行而迅速成為主流浴栽。Docker是容器技術的先驅和奠基者,它出現...
    倚天碼農閱讀 1,149評論 1 4
  • 對生命而言轿偎,接納才是最好的溫柔典鸡,無論是接納一個人的出現,還是接納一個人的從此不見坏晦。 ??? ???? 阿花第一次見...
    糖心拌飯閱讀 302評論 0 0
  • 一絲不茍的愛萝玷,只有感受過才懂得
    Goo來Goo往閱讀 108評論 0 1
  • 枝繁花新人不倦。 #辯桃#
    仇志飛閱讀 110評論 0 0
  • 2017年昆婿,我經歷了高考球碉,踏入了大學。上半年仓蛆,我埋頭苦讀睁冬,終究敵不過命運的捉弄,下半年看疙,我重拾初心痴突,踏上新的旅程搂蜓。...
    minibar閱讀 432評論 0 0