騰訊云云原生混合云-TKE發(fā)行版

來(lái)源: 騰訊云原生
作者:徐蓓 李波
時(shí)間:2021-05-31
17541
TKE發(fā)行版(TKE Kubernetes Distro)是由騰訊云TKE發(fā)布的K8s發(fā)行版本,用于幫助用戶創(chuàng)建安全可靠的K8s集群。

背景

TKE發(fā)行版(TKE Kubernetes Distro)是由騰訊云TKE發(fā)布的K8s發(fā)行版本,用于幫助用戶創(chuàng)建安全可靠的K8s集群。用戶可依托TKE發(fā)行版在自建或者托管機(jī)房、物理機(jī)或者虛機(jī)上,運(yùn)行與TKE完全一致的K8s服務(wù)。TKE發(fā)行版集群可無(wú)縫與騰訊云TKE集成,進(jìn)而組建混合云。用戶可通過(guò)TKE發(fā)行版集群將云下業(yè)務(wù)擴(kuò)展到云上,利用騰訊云TKE、EKS等云服務(wù)彈性能力,為業(yè)務(wù)提供強(qiáng)大的資源保障。

目前TKE發(fā)行版已在GitHub開(kāi)源:[https://github.com/tkestack/tke-k8s-distro]

使用場(chǎng)景與定位

在混合云場(chǎng)景下,不同的云服務(wù)商提供的K8s并不完全相同。并且用戶在云服務(wù)商以外的環(huán)境只能使用社區(qū)版K8s,而運(yùn)行環(huán)境的任何微小差異都可能導(dǎo)致業(yè)務(wù)故障,因此,如何盡可能地保障多環(huán)境中基礎(chǔ)組件的一致性變得尤為重要。TKE發(fā)行版便是解決這個(gè)問(wèn)題的一個(gè)不錯(cuò)的選擇,用戶無(wú)需花費(fèi)精力去關(guān)注不同環(huán)境下K8s的能力差異,以及自行修復(fù)K8s中的遇到的問(wèn)題。

依賴TKE發(fā)行版,用戶現(xiàn)在可以編譯和構(gòu)建與騰訊云TKE相同的K8s版本。這意味著用戶現(xiàn)在可以手動(dòng)部署可靠和安全的集群,而無(wú)需持續(xù)測(cè)試和跟蹤K8s更新、依賴關(guān)系和安全補(bǔ)丁。每一個(gè)TKE發(fā)行版都遵循騰訊云TKE和K8s社區(qū)標(biāo)準(zhǔn)新版本兼容性的流程。

TKE發(fā)行版在保證兼容性的基礎(chǔ)上,對(duì)K8s進(jìn)行了擴(kuò)展,并且與騰訊云TKE服務(wù)保持版本一致。用戶可以在自己的IDC或者混合云上部署TKE發(fā)行版,使用已有企業(yè)用戶大規(guī)模驗(yàn)證的可靠安全的K8s服務(wù)。

TKE發(fā)行版的每個(gè)版本都會(huì)通過(guò)K8s社區(qū)官方一致性測(cè)試,保證兼容性,同時(shí)以patch形式提供源代碼,并提供構(gòu)建工具幫助用戶進(jìn)行編譯。TKE發(fā)行版目前支持v1.20版本。

640.webp.jpg

我們的優(yōu)勢(shì)

大規(guī)模生產(chǎn)集群驗(yàn)證

TKE發(fā)行版提供與騰訊云TKE相同的可安裝版本和開(kāi)源代碼,功能和穩(wěn)定性經(jīng)過(guò)大量企業(yè)用戶、公有云及自研云錘煉。用戶可以使用提供的源代碼和編譯工具進(jìn)行構(gòu)建和部署。

無(wú)縫集成公有云TKE

TKE發(fā)行版可支持用戶在自建或者托管機(jī)房,物理機(jī)或者虛機(jī)上,運(yùn)行與騰訊云TKE完全一致的K8s服務(wù)。并且可以無(wú)縫與騰訊云TKE集成,組建混合云集群。

更長(zhǎng)支持周期

TKE發(fā)行版的支持周期比社區(qū)版更長(zhǎng)。在社區(qū)版停止支持后,TKE發(fā)行版將繼續(xù)得到支持,包括重要問(wèn)題以及安全漏洞的修復(fù)。

更多實(shí)用能力增強(qiáng)

TKE發(fā)行版結(jié)合騰訊自身業(yè)務(wù)特點(diǎn)和經(jīng)驗(yàn),針對(duì)部分場(chǎng)景(彈性擴(kuò)容、離在線混部、資源隔離等)實(shí)現(xiàn)了能力增強(qiáng)。并且TKE發(fā)行版緊跟社區(qū)趨勢(shì),主導(dǎo)或深度參與社區(qū)KEP設(shè)計(jì)與實(shí)現(xiàn)。對(duì)于有實(shí)用價(jià)值KEP會(huì)先于社區(qū)支持,讓用戶提前享受到云原生技術(shù)進(jìn)步。

功能增強(qiáng)

支持彈性擴(kuò)容到騰訊云EKS服務(wù)

EKS是騰訊云的彈性容器服務(wù),用戶無(wú)須購(gòu)買節(jié)點(diǎn)即可部署工作負(fù)載,非常適合突發(fā)等臨時(shí)的擴(kuò)容需求。在需要臨時(shí)擴(kuò)容時(shí),可以秒級(jí)快速把工作負(fù)載從TKE發(fā)行版集群擴(kuò)容到云上EKS,應(yīng)對(duì)突發(fā)和臨時(shí)流量,提高資源利用率,降低運(yùn)維和資金成本。

支持動(dòng)態(tài)修改kube-controller-manager日志級(jí)別

在運(yùn)維K8s生產(chǎn)集群中,我們一般設(shè)置較低日志級(jí)別(0~2),而在問(wèn)題排查時(shí)我們需要提高日志級(jí)別。TKE發(fā)行版實(shí)現(xiàn)了動(dòng)態(tài)修改日志級(jí)別功能,從而避免因組件重啟導(dǎo)致關(guān)鍵日志丟失。目前K8s官方版本支持kube-apiserver、kubelet和kube-scheduler設(shè)置,TKE發(fā)行版額外實(shí)現(xiàn)了kube-controller-manager組件的日志動(dòng)態(tài)調(diào)級(jí)。

該feature已提交社區(qū):【https://github.com/kubernetes/kubernetes/pull/98262】

支持Memory QoS with cgroups v2特性(進(jìn)行中)

Memory QoS with cgroups v2是TKE團(tuán)隊(duì)設(shè)計(jì)實(shí)現(xiàn)的內(nèi)存QoS功能,它利用v2 memory controller中memory.min/memory.high為pod/container/node提供全方位的內(nèi)存保護(hù)。

目前該KEP已被K8s社區(qū)接受,預(yù)計(jì)在v1.22中實(shí)現(xiàn)alpha版。TKE發(fā)行版會(huì)先于社區(qū)支持該特性,為用戶Pod、集群節(jié)點(diǎn)等提供更好的內(nèi)存保護(hù)。

Memory QoS with cgroups v2:【https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2570-memory-qos】

支持TencentOS QoS特性(進(jìn)行中)

TencentOS是騰訊針對(duì)云場(chǎng)景研發(fā)的Linux操作系統(tǒng),專門針對(duì)容器場(chǎng)景提供了原生優(yōu)先級(jí)支持及資源隔離增強(qiáng),包括CPU、內(nèi)存、磁盤IO和網(wǎng)絡(luò)IO等。TKE發(fā)行版內(nèi)置了對(duì)TencentOS QoS特性的支持,將K8s資源隔離和QoS分級(jí)offload到TencentOS實(shí)現(xiàn)。該特性在開(kāi)發(fā)中,預(yù)計(jì)下個(gè)版本支持。

TencentOS:【https://github.com/Tencent/TencentOS-kernel】

穩(wěn)定性增強(qiáng)

TKE發(fā)行版依據(jù)大量生產(chǎn)經(jīng)驗(yàn),修復(fù)眾多生產(chǎn)級(jí)bug,支持千萬(wàn)核集群在騰訊穩(wěn)定運(yùn)行。主要bugfix包括:

1.修復(fù)使用containerd時(shí)集群監(jiān)控指標(biāo)缺失問(wèn)題

在containerd作為container runtime的集群中,kubelet沒(méi)有正確設(shè)置采集指標(biāo)的container name,導(dǎo)致不能被歸類和分析。TKE發(fā)行版本修復(fù)了該問(wèn)題,提交社區(qū)PR:【https://github.com/kubernetes/kubernetes/pull/90260】

2.修復(fù)刪除Pod后立即創(chuàng)建并調(diào)度到同一個(gè)節(jié)點(diǎn)可能導(dǎo)致無(wú)法掛載成功的問(wèn)題

K8s statefulset pod在刪除后重新創(chuàng)建,如果pod調(diào)度到同一個(gè)節(jié)點(diǎn),會(huì)因?yàn)榫頀燧d失敗而導(dǎo)致啟動(dòng)失敗。TKE發(fā)行版修復(fù)了該問(wèn)題,提交社區(qū)PR:【https://github.com/kubernetes/kubernetes/pull/72914】

3.修復(fù)CentOS下創(chuàng)建容器會(huì)導(dǎo)致cgroup泄露的問(wèn)題

TKE發(fā)行版關(guān)閉了kernel memory accouting以避免cgroup泄露。

4.修復(fù)kubectl describe deployment <xxx> NewReplicaSet 顯示為 <none> 的問(wèn)題

kubectl describe在獲取deployment對(duì)象后,會(huì)對(duì)volume進(jìn)行排序,有時(shí)會(huì)導(dǎo)致無(wú)法匹配到最新replicaset。TKE發(fā)行版修復(fù)了該問(wèn)題,提交社區(qū)PR:【https://github.com/kubernetes/kubernetes/pull/97752】

5.修復(fù)Pod容器鏡像有多tag時(shí),Pod status鏡像tag會(huì)不匹配問(wèn)題

Pod容器一鏡像有多tag時(shí),會(huì)導(dǎo)致pod spec容器鏡像tag與kubelet上報(bào)不符。TKE發(fā)行版backport社區(qū)PR修復(fù)此問(wèn)題:【https://github.com/kubernetes/kubernetes/pull/94833】

6.修復(fù)aws credential provider導(dǎo)致kubelet啟動(dòng)20s延遲問(wèn)題

AWS credential provider在初始化時(shí)會(huì)嘗試連接AWS元數(shù)據(jù)服務(wù),會(huì)導(dǎo)致非AWS集群出現(xiàn)最長(zhǎng)20s啟動(dòng)延遲。TKE發(fā)行版上報(bào)了bug【https://github.com/kubernetes/kubernetes/issues/92162】

并backport社區(qū)PR【https://github.com/kubernetes/kubernetes/pull/93260】

7.修復(fù)Ubuntu16.04 lxcfs升級(jí)造成pod退出問(wèn)題

K8s集群在Ubuntu16.04下默認(rèn)安裝低版本lxcfs,在對(duì)lxcfs升級(jí)后,會(huì)導(dǎo)致pod無(wú)法正常運(yùn)行。原因是低版本lxcfs掛載cgroupfs,kubelet在啟動(dòng)時(shí)會(huì)使用lxcfs已掛載cgroupfs,而非系統(tǒng)/sys/fs/cgroup。lxcfs在升級(jí)新版本后,舊cgroupfs會(huì)被解掛,導(dǎo)致kubelet對(duì)pod cgroup操作失敗。TKE發(fā)行版修復(fù)了該問(wèn)題。

如何使用TKE發(fā)行版

TKE發(fā)行版提供了安裝工具腳本,幫助用戶自動(dòng)編譯和構(gòu)建發(fā)行版鏡像,極大降低了TKE發(fā)行版的使用門檻。

編譯和構(gòu)建流程包括:

1.拉取patch代碼

git clone[https://github.com/tkestack/tke-k8s-distro](https://github.com/tkestack/tke-k8s-distro)

2.編譯組件

make

或者

make \<release\>

目前支持1.20版本。

3.組件產(chǎn)出

編譯過(guò)程中,源碼路徑為_(kāi)src/&lt;release&gt;,編譯產(chǎn)出路徑為_(kāi)output/&lt;release&gt;,組件包括kubeadm,kube-apiserver,kube-controller-manager,kubectl,kubelet,kube-proxy,kube-scheduler。

下一步

TKE發(fā)行版的推出,使得用戶線下IDC與騰訊云上TKE的融合成為可能。我們期望TKE發(fā)行版未來(lái)能成為混合云與多云的基石,讓用戶在混合云環(huán)境中,可隨時(shí)隨地享受到和云上TKE一致的體驗(yàn)。

TKE發(fā)行版未來(lái)會(huì)以開(kāi)源方式運(yùn)作,用戶可以通過(guò)GitHub提供任何反饋,不僅限于Issue和PR。

GitHub:【https://github.com/tkestack/tke-k8s-distro】

立即登錄,閱讀全文
版權(quán)說(shuō)明:
本文內(nèi)容來(lái)自于騰訊云原生,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
騰訊云數(shù)據(jù)庫(kù)PostgreSQL全面支持PG 17
騰訊云數(shù)據(jù)庫(kù)PostgreSQL全面支持PG 17
即日起,騰訊云PostgreSQL全面支持PostgreSQL 17.0。所有用戶可使用大版本升級(jí)能力升級(jí)至最新的PostgreSQL 17.0進(jìn)行體驗(yàn),也可以在產(chǎn)品購(gòu)買頁(yè)直接購(gòu)買。
騰訊云
云服務(wù)
2024-12-152024-12-15
高可用這個(gè)問(wèn)題,加機(jī)器就能解決?
高可用這個(gè)問(wèn)題,加機(jī)器就能解決?
互聯(lián)網(wǎng)服務(wù)的可用性問(wèn)題是困擾企業(yè)IT人員的達(dá)摩克利斯之劍:防于未然,體現(xiàn)不出價(jià)值。已然發(fā)生,又面臨P0危機(jī)。就更別提穩(wěn)定性建設(shè)背后顯性的IT預(yù)算問(wèn)題與隱性的人員成本問(wèn)題。
騰訊云
云服務(wù)
2024-11-252024-11-25
TDSQL TDStore引擎版替換HBase:在歷史庫(kù)場(chǎng)景中的成本與性能優(yōu)勢(shì)
TDSQL TDStore引擎版替換HBase:在歷史庫(kù)場(chǎng)景中的成本與性能優(yōu)勢(shì)
HBase憑借其高可用性、高擴(kuò)展性和強(qiáng)一致性,以及在廉價(jià)PC服務(wù)器上的低部署成本,廣泛應(yīng)用于大規(guī)模數(shù)據(jù)分析。
騰訊云
云服務(wù)
2024-11-042024-11-04
復(fù)雜查詢性能弱,只讀分析引擎來(lái)幫忙
復(fù)雜查詢性能弱,只讀分析引擎來(lái)幫忙
隨著當(dāng)今業(yè)務(wù)的高速發(fā)展,復(fù)雜多表關(guān)聯(lián)的場(chǎng)景越來(lái)越普遍。但基于行式存儲(chǔ)的數(shù)據(jù)庫(kù)在進(jìn)行復(fù)雜查詢時(shí)性能相對(duì)較弱。
騰訊云
云服務(wù)
2024-11-022024-11-02
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開(kāi)掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
個(gè)人VIP
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家