溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

tensile-kube的特點(diǎn)是什么

發(fā)布時(shí)間:2022-01-07 15:52:10 來源:億速云 閱讀:197 作者:iii 欄目:云計(jì)算

這篇“tensile-kube的特點(diǎn)是什么”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“tensile-kube的特點(diǎn)是什么”文章吧。

tensile-kube 名稱由來

tensile名為可擴(kuò)展的,可延伸的,同時(shí)tensile中也包含了tencent 和 tenc的意思。

tensile-kube 誕生背景

騰訊游戲Tenc(容器)計(jì)算平臺(tái)線上有數(shù)十個(gè)K8s集群,這些集群都存在一些碎片資源,無法得到有效利用。常見的場景是:一個(gè)作業(yè)需要N個(gè)資源,但是現(xiàn)有集群A、B、C等所剩資源都不滿足N,而集群A,B,C資源總和又能滿足N。此外,我們還有另一種場景:業(yè)務(wù)有一種類型的業(yè)務(wù)需要同時(shí)發(fā)布到多個(gè)集群。

其實(shí),業(yè)界很早就有類似的需求,也誕生出了Federation等方案,但是這些對(duì)于現(xiàn)有的K8s 會(huì)有較大的改造成本,同時(shí)增加了很多繁雜的CRD。因而,我們自主研發(fā)了更輕量的基于virtual-kubelet的解決方案tensile-kube。

https://github.com/kubernetes-sigs/kubefed

virtual-kubelet(VK)簡介

VK是用微軟開源的一個(gè)基礎(chǔ)庫,其實(shí)現(xiàn)通常叫做provider, 早期的VK中包含了各種provider, 目前VK社區(qū)已經(jīng)將其獨(dú)立出來,分為:virtual-kubelet、node-cli和provider。virtual-kubelet提供了一種抽象能力,通過實(shí)現(xiàn)provider,用戶就實(shí)現(xiàn)了一個(gè)虛擬的K8s節(jié)點(diǎn),用戶的Pod可以調(diào)度到該節(jié)點(diǎn)。virtual-kubelet的核心功能是Node和Pod的生命周期管控。

tensile-kube 架構(gòu)

tensile-kube的特點(diǎn)是什么

tensile-kube核心組件為4個(gè):

  • virtual-node

    基于virtual-kubelet實(shí)現(xiàn)的了K8s provider功能,同時(shí)增加了多個(gè)controller,用于同步ConfigMap、Sercret、Service等資源。

  • webhook

    對(duì)Pod中可能對(duì)上層集群調(diào)度產(chǎn)生干擾的字段進(jìn)行轉(zhuǎn)換,將其寫入annotation中,virtual-node在創(chuàng)建Pod時(shí)再將其恢復(fù),避免影響用戶期望的調(diào)度結(jié)果。

  • descheduler

    用于避免資源碎片帶來的影響,這個(gè)組件我們基于社區(qū)的descheduler進(jìn)行了二次開發(fā),使之更適用于這個(gè)場景。

  • multi-scheduler

    主要用于連接下層集群的API Server, 避免資源碎片的影響,在調(diào)度時(shí)判斷virtual-node的資源是否足夠。(圖中未畫出來,multi-scheduler會(huì)比較重,不是特別推薦使用;如果要使用,需將上層集群kube-scheduler替換成multi-scheduler。)

tensile-kube 特點(diǎn)

  • 對(duì)原生K8s集群無侵入

    tensile-kube中,通過virtual-node建立上下層集群之間的連接,上層的Pod通過調(diào)度器調(diào)度到virtual-node,隨后將Pod同步到下層集群創(chuàng)建,整個(gè)方案對(duì)于K8s無侵入。

  • K8s上層平臺(tái)改造成本低

    在上層的K8s平臺(tái)看來,通過tensile-kube連接的集群就是一個(gè)大集群,可以完全屏蔽區(qū)別,所以對(duì)于平臺(tái)來說,也幾乎是不需要改造的。

  • 基于原生virtual-kubelet開發(fā)

    tensile-kube基于原生virtual-kubelet打造,沒有過多額外的依賴,同時(shí)又保持原生virtual-kubelet的諸多功能,后續(xù)更新升級(jí)方便。

這些使得tensile-kube可以方便的實(shí)現(xiàn)多個(gè)集群的調(diào)度管理,且適用于大多數(shù)場景。

tensile-kube 主要能力

  • 集群碎片資源整合

    對(duì)于離線集群來說,或多或少存在資源碎片。通過tensile-kube,可以將這寫碎片合成一個(gè)大的資源池,將閑置的資源充分利用起來。

  • 服務(wù)多集群調(diào)度

    結(jié)合Affinity等,可以實(shí)現(xiàn),Pod的多集群調(diào)度。對(duì)于1.16及以上集群還可以基于TopologySpreadConstraint實(shí)現(xiàn)更細(xì)粒度的跨級(jí)群調(diào)度。

  • 服務(wù)跨集群通信

    tensile-kube原生提供通過Service進(jìn)行跨集群通信的能力。但是前提是:需要不通集群之間的網(wǎng)絡(luò)通過Pod IP可以互通,如:私有集群共用一個(gè)flannel等。

  • 便捷化運(yùn)維集群

    當(dāng)我們進(jìn)行單個(gè)集群升級(jí)、變更時(shí),往往需要通知業(yè)務(wù)遷移、集群屏蔽調(diào)度等,在tensile-kube的支持,我們只需要將virtual-node 設(shè)置為不可能調(diào)度。

  • 原生kubectl能力

    tensile kubectl支持原生kubectl所有操作,包括:kuebctl logs和kubectl exec。這對(duì)于運(yùn)維人員去管理對(duì)于下層集群上的pod會(huì)十分方便,沒有額外的學(xué)習(xí)成本。

其余可能的適用場合

  • 邊緣計(jì)算

  • 混合云

以上就是關(guān)于“tensile-kube的特點(diǎn)是什么”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI