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