這篇“tensile-kube的特點(diǎn)是什么”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“tensile-kube的特點(diǎn)是什么”文章吧。
創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供武陵網(wǎng)站建設(shè)、武陵做網(wǎng)站、武陵網(wǎng)站設(shè)計(jì)、武陵網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、武陵企業(yè)網(wǎng)站模板建站服務(wù),10年武陵做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
tensile-kube 名稱由來(lái)
tensile名為可擴(kuò)展的,可延伸的,同時(shí)tensile中也包含了tencent 和 tenc的意思。
tensile-kube 誕生背景
騰訊游戲Tenc(容器)計(jì)算平臺(tái)線上有數(shù)十個(gè)K8s集群,這些集群都存在一些碎片資源,無(wú)法得到有效利用。常見(jiàn)的場(chǎng)景是:一個(gè)作業(yè)需要N個(gè)資源,但是現(xiàn)有集群A、B、C等所剩資源都不滿足N,而集群A,B,C資源總和又能滿足N。此外,我們還有另一種場(chǎng)景:業(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)簡(jiǎn)介
VK是用微軟開(kāi)源的一個(gè)基礎(chǔ)庫(kù),其實(shí)現(xiàn)通常叫做provider, 早期的VK中包含了各種provider, 目前VK社區(qū)已經(jīng)將其獨(dú)立出來(lái),分為:virtual-kubelet、node-cli和provider。virtual-kubelet提供了一種抽象能力,通過(guò)實(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核心組件為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
用于避免資源碎片帶來(lái)的影響,這個(gè)組件我們基于社區(qū)的descheduler進(jìn)行了二次開(kāi)發(fā),使之更適用于這個(gè)場(chǎng)景。
multi-scheduler
主要用于連接下層集群的API Server, 避免資源碎片的影響,在調(diào)度時(shí)判斷virtual-node的資源是否足夠。(圖中未畫出來(lái),multi-scheduler會(huì)比較重,不是特別推薦使用;如果要使用,需將上層集群kube-scheduler替換成multi-scheduler。)
tensile-kube 特點(diǎn)
對(duì)原生K8s集群無(wú)侵入
tensile-kube中,通過(guò)virtual-node建立上下層集群之間的連接,上層的Pod通過(guò)調(diào)度器調(diào)度到virtual-node,隨后將Pod同步到下層集群創(chuàng)建,整個(gè)方案對(duì)于K8s無(wú)侵入。
K8s上層平臺(tái)改造成本低
在上層的K8s平臺(tái)看來(lái),通過(guò)tensile-kube連接的集群就是一個(gè)大集群,可以完全屏蔽區(qū)別,所以對(duì)于平臺(tái)來(lái)說(shuō),也幾乎是不需要改造的。
基于原生virtual-kubelet開(kāi)發(fā)
tensile-kube基于原生virtual-kubelet打造,沒(méi)有過(guò)多額外的依賴,同時(shí)又保持原生virtual-kubelet的諸多功能,后續(xù)更新升級(jí)方便。
這些使得tensile-kube可以方便的實(shí)現(xiàn)多個(gè)集群的調(diào)度管理,且適用于大多數(shù)場(chǎng)景。
tensile-kube 主要能力
集群碎片資源整合
對(duì)于離線集群來(lái)說(shuō),或多或少存在資源碎片。通過(guò)tensile-kube,可以將這寫碎片合成一個(gè)大的資源池,將閑置的資源充分利用起來(lái)。
服務(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原生提供通過(guò)Service進(jìn)行跨集群通信的能力。但是前提是:需要不通集群之間的網(wǎng)絡(luò)通過(guò)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ì)十分方便,沒(méi)有額外的學(xué)習(xí)成本。
其余可能的適用場(chǎng)合
邊緣計(jì)算
混合云
以上就是關(guān)于“tensile-kube的特點(diǎn)是什么”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
標(biāo)題名稱:tensile-kube的特點(diǎn)是什么
文章起源:http://aaarwkj.com/article12/psosgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、域名注冊(cè)、虛擬主機(jī)、靜態(tài)網(wǎng)站、手機(jī)網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)