国产精品chinese,色综合天天综合精品网国产在线,成午夜免费视频在线观看,清纯女学生被强行糟蹋小说

    <td id="ojr13"><tr id="ojr13"><label id="ojr13"></label></tr></td>
        • <source id="ojr13"></source>
            <td id="ojr13"><ins id="ojr13"><label id="ojr13"></label></ins></td>

            Article / 文章中心

            歷經(jīng) 7 年雙 11 實戰(zhàn),阿里巴巴是如何定義云原生混部調度優(yōu)先級及服務質量的?

            發(fā)布時間:2021-12-02 點擊數(shù):923

            阿里巴巴在離線混部技術從 2014 年開始,經(jīng)歷了七年的雙十一檢驗,內部已經(jīng)大規(guī)模落地推廣,每年為阿里集團節(jié)省數(shù)十億的資源成本,整體資源利用率達到 70% 左右,達到業(yè)界領先。這兩年,我們開始把集團內的混部技術通過產(chǎn)品化的方式輸出給業(yè)界,通過插件化的方式無縫安裝在標準原生的 K8s 集群上,配合混部管控和運維能力,提升集群的資源利用率和產(chǎn)品的綜合用戶體驗。

            由于混部是一個復雜的技術及運維體系,包括 K8s 調度、OS 隔離、可觀測性等等各種技術,本文將聚焦在 K8s 層的容器優(yōu)先級和服務質量模型上,希望給業(yè)界提供一些可借鑒的思路。

            K8s 原生模型

            在實際的生產(chǎn)實踐中,即使是很多對云原生和 K8s 比較熟悉的技術人員,往往也會混淆調度優(yōu)先級(Priority)和服務質量(QoS)。

            所以,在談混部的模型前,首先我們對 K8s 原生的概念做詳細的介紹,詳見下表:

             title=

            從 API 層面詳細描述的話,可以看下面這張表

             title=

            混部需要解決的問題

            混部主要解決的問題是,在保證部署應用的服務等級目標 SLO 的前提下,充分利用集群中的空閑資源,來提升集群整體的利用率。

            當一個集群被在線服務部署分配部署完以后,由于在線應用的高保障的特性,會給容器一個 peak 的資源規(guī)格,這樣有可能導致實際真實利用率很低。

             title=

            我們希望將這部分空閑但是未使用的資源超賣出來提供給低 SLO 的離線作業(yè)使用,以此提高整體機器水位。這樣就需要提供基于 SLO 的調度能力,以及考慮到機器真實資源水位進行調度,避免熱點的產(chǎn)生。

            另外,由于在線通常 SLO 比較高,離線 SLO 比較低,那么當機器水位整體提升過高的時候,可以通過搶占離線的作業(yè)方式,來保障在線應用的 SLO。以及需要利用率內核層面 cgroup 的隔離特性來保障高 SLO 和低 SLO 作業(yè)。

            那么,在這些在線和離線的 Pod 之間,我們就需要用不同的調度優(yōu)先級和服務質量等級,以滿足在線和離線的實際運行需求。

            云原生混部定義的應用等級模型

            首先請看一下在混部中一個 Pod 的 yaml 是怎么定義的

            apiVersion: v1 kind: Pod metadata: annotations: alibabacloud.com/qosClass: BE # {LSR,LS,BE} labels: alibabacloud.com/qos: BE # {LSR,LS,BE}  spec: containers: - resources: limits: alibabacloud.com/reclaimed-cpu: 1000 # 單位  milli core,1000表示1Core alibabacloud.com/reclaimed-memory: 2048 # 單位 字節(jié),和普通內存一樣。單位可以為 Gi Mi Ki GB MB KB requests: alibabacloud.com/reclaimed-cpu: 1000 alibabacloud.com/reclaimed-memory: 2048

            這是在混部里面我們引入的 Pod 的等級,和社區(qū)原生不同的地方在于,我們顯式的在 anotation 和 label 里面申明了 3 種等級:LSR、LS、BE。這 3 種等級會同時和調度優(yōu)先級(Priority)、服務質量(Qos)產(chǎn)生關聯(lián)。

            具體的每個容器的資源用量,LSR 和 LS 還是沿用原有的 cpu/memory 的配置方式,BE 類任務比較特殊,通過社區(qū)標準的 extended-resource 模式來申明資源。

            那么,這 3 類等級具體代表的運行時含義又是什么呢?可以參考這個圖,看下這三類應用在 CPU 上的運行時的情況

             title=

            以及詳細的對其他資源使用的影響:

             title=

            可以看到,這個等級,不但和 Pod 在單機上運行的 CPU、內存有關,還和網(wǎng)絡 Qos 的全鏈路優(yōu)先級有關,避免低優(yōu)的離線類任務搶占了所有的網(wǎng)絡帶寬。阿里在內核方面做的工作有效的保證了運行時的應用穩(wěn)定性,2021 年雙 11 期間,阿里成為全球首家將所有業(yè)務都放在自家公共云上的大型科技公司,這意味著阿里云有能力應對高難度復雜環(huán)境下的技術挑戰(zhàn),也帶來了非常大的技術收益:阿里巴巴業(yè)務的研發(fā)效率提升了 20%、CPU 資源利用率提升 30%、應用 100% 云原生化、在線業(yè)務容器可達百萬規(guī)模,同時計算效率大幅提升,雙 11 整體計算成本三年下降 30%。在這個過程中,混合部署技術發(fā)揮了重要作用。內核團隊及云原生團隊工程師踩了無數(shù)的坑,沉淀了包括彈性 CPU 帶寬、Group Identity、SMT expeller、memcg 異步回收、內存水線分級、memcg OOM 等多項高級特性,處于業(yè)界領先水平。這些工作都會在系列的文章里面后續(xù)一一介紹。

            當這三種類型優(yōu)先級任務實際在調度和運行時發(fā)生的行為,如下面這個表所示

             title=

            也就是說,混部的優(yōu)先級會同時作用于調度和運行時,最大程度的保證高 SLO 的高優(yōu)、中優(yōu)任務使用集群內的資源。

            配額、水位線、多租隔離

            本文僅聚焦討論了 K8s 單 Pod 的調度優(yōu)先級,在實際使用時,為了保證應用的 SLO,需要配合單機的水位線、租戶的配額、以及 OS 隔離能力等等使用,我們會在后續(xù)文章里面詳細探討。

            相關解決方案介紹

            進入了 2021 年,混部在阿里內部已經(jīng)成為了一個非常成熟的技術,為阿里每年節(jié)省數(shù)十億的成本,是阿里數(shù)據(jù)中心的基本能力。而阿里云也把這些成熟的技術經(jīng)過兩年的時間,沉淀成為混部產(chǎn)品,開始服務于各行各業(yè)。

            在阿里云的產(chǎn)品族里面,我們會把混部的能力通過 ACK 敏捷版,以及 CNStack(CloudNative Stack)產(chǎn)品家族,對外進行透出,并結合龍蜥操作系統(tǒng)(OpenAnolis),形成完整的云原生數(shù)據(jù)中心混部的一體化解決方案,輸出給我們的客戶。