嘉賓?| 楊業(yè)飛
出品 | CSDN云原生
2022年9月22日,在中國(guó)信通院、騰訊云、FinOps產(chǎn)業(yè)標(biāo)準(zhǔn)工作組聯(lián)合發(fā)起的《原動(dòng)力x云原生正發(fā)聲 降本增效大講堂》系列直播活動(dòng)第9講上,京東云JDOS研發(fā)組架構(gòu)師楊業(yè)飛分享了京東的云原生大規(guī)模實(shí)踐。本文整理自楊業(yè)飛的分享。
【資料圖】
京東JDOS技術(shù)演進(jìn)
JDOS是京東的容器管理平臺(tái)、統(tǒng)一的云原生技術(shù)底座,當(dāng)前京東的內(nèi)部業(yè)務(wù)均運(yùn)行在JDOS平臺(tái)上。
2014-2016年,JDOS 1.0容器化
針對(duì)物理機(jī)部署資源利用率低、應(yīng)用資源無(wú)法隔離、應(yīng)用無(wú)隔離等問(wèn)題,JDOS 1.0階段通過(guò)OpenStack + Docker胖容器部署的技術(shù)方案,增加部署密度,將宿主機(jī)平均使用率從10%提升到15%并增強(qiáng)隔離性,使應(yīng)用資源更可控、應(yīng)用遷移更便利。
2017-2018年,JDOS 2.0阿基米德調(diào)度
針對(duì)1.0時(shí)期服務(wù)器資源采購(gòu)受限、資源利用率有待提升、資源使用不均衡等問(wèn)題,JDOS 2.0階段增加Kubernetes與阿基米德調(diào)度,實(shí)現(xiàn)宿主機(jī)平均使用率從15%提升至30%,并大幅減少服務(wù)器數(shù)量,節(jié)省采購(gòu)成本。
2019至今,JDOS 3.0 Serverless+混部
針對(duì)2.0時(shí)期應(yīng)用上下線成本高、在線集群非高峰段資源利用率不高等問(wèn)題,JDOS 3.0階段通過(guò)跨集群Serverless與混部的結(jié)合,降低部署成本,給大數(shù)據(jù)和業(yè)務(wù)提供了充足的資源。
阿基米德調(diào)度
在京東應(yīng)用場(chǎng)景下,原生調(diào)度器存在資源使用率不均、任務(wù)分配不均以及調(diào)度速度較慢等問(wèn)題,于是我們基于阿基米德調(diào)度,對(duì)諸多功能做了改造與升級(jí)。
基于預(yù)測(cè)的智能調(diào)度:依托京東大數(shù)據(jù),利用機(jī)器學(xué)習(xí)、深度學(xué)習(xí)算法,對(duì)應(yīng)用的資源使用情況進(jìn)行畫像統(tǒng)計(jì),并能對(duì)應(yīng)用的未來(lái)資源使用情況進(jìn)行預(yù)測(cè),將在線與離線應(yīng)用合理地進(jìn)行混合調(diào)度部署,保護(hù)節(jié)點(diǎn)負(fù)載。
調(diào)度過(guò)程可視化及熱點(diǎn)分析:調(diào)度過(guò)程可見,調(diào)度歷史全程可追溯,熱點(diǎn)機(jī)器形成原因?qū)崟r(shí)分析,并出具分析報(bào)告。
調(diào)度器仿真系統(tǒng)及回放功能:通過(guò)模擬器 + 線上數(shù)據(jù)回放,對(duì)調(diào)度請(qǐng)求進(jìn)行仿真模擬,形成新的數(shù)據(jù)建模,并優(yōu)化調(diào)度方案,為智能調(diào)度提供更優(yōu)方案。
應(yīng)用維度均衡策略:應(yīng)用密度控制、基于SLA等級(jí)調(diào)度、基于監(jiān)控?cái)?shù)據(jù)的應(yīng)用反親和。
應(yīng)用密度提升:充分利用申請(qǐng)與實(shí)際使用差距提升Pod部署密度。
調(diào)度速度優(yōu)化:調(diào)度策略/過(guò)程調(diào)整/優(yōu)化 + 調(diào)度策略Pod級(jí)別可配 + 調(diào)度預(yù)測(cè)/快速失敗機(jī)制。
業(yè)務(wù)方面存在跨集群甚至跨機(jī)房的容災(zāi)模式需求,同時(shí)平臺(tái)管理員也希望能夠打破各集群的資源孤島狀態(tài),實(shí)現(xiàn)良好的資源調(diào)度分配。于是,我們基于以上需求推出了跨集群Serverless方案。
基于資源管理系統(tǒng)提前預(yù)測(cè)各集群可調(diào)度副本數(shù),基于用戶策略(集中/分散/跨集群/跨機(jī)房)決策各個(gè)集群副本數(shù)量。
支持定時(shí)、實(shí)時(shí)指標(biāo)彈性擴(kuò)縮策略、歷史指標(biāo)彈性擴(kuò)縮策略,實(shí)時(shí)擴(kuò),延時(shí)縮。
通過(guò)P2P提升鏡像下載速度,基于NPD + 故障探測(cè)腳本,解決啟動(dòng)、銷毀過(guò)程中的阻塞點(diǎn),啟動(dòng)銷毀速度控制在秒級(jí)。
基于高性能DPDK支持權(quán)重動(dòng)態(tài)調(diào)節(jié),就近解析、就近轉(zhuǎn)發(fā)。
自動(dòng)掛載LB、JSF等流量,支持狀態(tài)預(yù)熱、IP白名單等前置資源自動(dòng)處理能力。
可靠的故障探測(cè)恢復(fù)系統(tǒng),若本集群一直達(dá)不到可用狀態(tài),會(huì)嘗試跨集群重調(diào)度。
基于Node評(píng)分狀態(tài),進(jìn)行縮容操作,如使用率、特征匹配程度等指標(biāo)。
全局資源預(yù)測(cè)
及時(shí)彈性策略
實(shí)例啟停速度優(yōu)化
跨集群LB
應(yīng)用流量掛載
故障自動(dòng)恢復(fù)
智能縮容
離在線混部的核心在于調(diào)度與隔離,調(diào)度從全局維度保證資源的合理分配,隔離則能有效減少業(yè)務(wù)之間的相互干擾。
離線資源識(shí)別
離線資源通過(guò)識(shí)別空閑資源而獲得,不搶占在線可用資源Quota;
空閑資源 = 未申請(qǐng)資源 +?申請(qǐng)未使用資源 +?系統(tǒng)預(yù)留資源?- (節(jié)點(diǎn)資源 * 全局預(yù)留水位);
未使用資源識(shí)別:通過(guò)過(guò)去7天數(shù)據(jù)預(yù)測(cè)未來(lái)五分鐘95分位數(shù)獲得。
資源隔離
CPU:超線程壓制、LLC隔離、盡量NUMA綁定;
內(nèi)存:在節(jié)點(diǎn)內(nèi)存緊張時(shí),優(yōu)先OOM離線任務(wù)再OOM在線任務(wù),離在線分別按優(yōu)先級(jí)進(jìn)行OOM;
磁盤:支持磁盤Direct IO/Buffer IO限速,支持按照權(quán)重、絕對(duì)值對(duì)磁盤吞吐/IOPS進(jìn)行限制;
網(wǎng)絡(luò):網(wǎng)絡(luò)帶寬支持權(quán)重、絕對(duì)值限制,避免宿主機(jī)、交換機(jī)帶寬打滿,影響在線業(yè)務(wù);
離線大框:離線資源統(tǒng)一大框管理,離線作業(yè)充分利用空閑資源,整體把控性強(qiáng)。
水位線壓制
cpuUsageSafeRatio:全局資源使用的安全水位線,整機(jī)使用資源不可超過(guò)該水位線,若超過(guò)該水位線,優(yōu)先對(duì)離線任務(wù)進(jìn)行壓制;
offlineTaskTotalQuota:離線任務(wù)總Quota,用來(lái)限制單機(jī)所有離線任務(wù)可以使用的CPU資源總量;
offlineTaskMinQuota:離線任務(wù)最低資源保障,offlineTaskTotalQuota不會(huì)低于該值,用來(lái)保障離線任務(wù)的正常運(yùn)行。
驅(qū)逐
復(fù)雜的應(yīng)用場(chǎng)景難以規(guī)避業(yè)務(wù)之間干擾的存在,當(dāng)干擾出現(xiàn)時(shí),可采用驅(qū)逐的手段保障機(jī)器正常作業(yè)以及任務(wù)正常運(yùn)行。
任務(wù)干擾、機(jī)器熱點(diǎn)、資源均衡場(chǎng)景下的驅(qū)逐,多基于任務(wù)優(yōu)先級(jí)、任務(wù)計(jì)算進(jìn)度等指標(biāo)進(jìn)行,在驅(qū)逐后進(jìn)行調(diào)度冷卻處理。
監(jiān)控
僅對(duì)常規(guī)指標(biāo)進(jìn)行收集監(jiān)控已無(wú)法滿足應(yīng)用場(chǎng)景的高復(fù)雜性,還需挖掘更深層次的監(jiān)控維度。
常規(guī)指標(biāo):CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)等。
干擾指標(biāo):壓制頻率/程度、CPI、PSI等。
相關(guān)性:相關(guān)性學(xué)習(xí)、分析指標(biāo)等。
健康度分析:對(duì)節(jié)點(diǎn)進(jìn)行健康度檢查與分析,對(duì)于不正常的節(jié)點(diǎn),出具健康度診斷報(bào)告。
綜上所述,在提升集群資源利用率方面,京東云原生技術(shù)體系圍繞四個(gè)方面展開:
阿基米德調(diào)度
通過(guò)全局與全時(shí)段的資源預(yù)測(cè)分配策略,全局把控服務(wù)質(zhì)量。跨集群Serverless
降低用戶使用成本,實(shí)現(xiàn)在線資源二次均衡,彌補(bǔ)一次調(diào)度時(shí)產(chǎn)生的偏差。離在線混部
通過(guò)多維度資源隔離、有效實(shí)時(shí)壓制以及策略驅(qū)逐,保證離在線任務(wù)的同步部署,提高集群資源使用率。統(tǒng)一資源管理系統(tǒng)
資源預(yù)測(cè),節(jié)點(diǎn)分類/打分/健康度分析。【原動(dòng)力×云原生正發(fā)聲降本增效大講堂】第一期聚焦在優(yōu)秀實(shí)踐方法論、資源與彈性、架構(gòu)設(shè)計(jì);第二期聚焦全場(chǎng)景在離線混部、K8s GPU資源效率提升、K8s資源拓?fù)涓兄{(diào)度主題;第三期邀請(qǐng)4家業(yè)界知名企業(yè)分享各企業(yè)云原生降本增效技術(shù)實(shí)踐,為開發(fā)者帶來(lái)更多樣化場(chǎng)景業(yè)務(wù)下的技術(shù)干貨。點(diǎn)擊『此處』進(jìn)入活動(dòng)專題頁(yè),帶你體驗(yàn)云原生降本增效實(shí)踐案例、了解如何解決企業(yè)用云痛點(diǎn)、掌握降本增效關(guān)鍵技能……
關(guān)鍵詞: