本篇文章為大家展示了如何進(jìn)行TKEStack整體架構(gòu)及性能分析,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括博樂網(wǎng)站建設(shè)、博樂網(wǎng)站制作、博樂網(wǎng)頁(yè)制作以及博樂網(wǎng)絡(luò)營(yíng)銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,博樂網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到博樂省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
TKEStack 名稱中包含 Stack,也表明 TKEStack 有別于其他容器產(chǎn)品,它將打造的是一整套技術(shù)棧,以 TKE 容器平臺(tái)為核心,面向網(wǎng)絡(luò),存儲(chǔ),應(yīng)用,服務(wù)等各個(gè)領(lǐng)域,擴(kuò)展平臺(tái)在底層資源管控和上層業(yè)務(wù)服務(wù)上的能力邊界,所有這些能力都將在 TKEStack 下開源,社區(qū)用戶、合作伙伴等都可以參與進(jìn)來貢獻(xiàn)和分享。
TKEStack 整體架構(gòu)上采用 Kubernetes on Kubernetes 的設(shè)計(jì)理念,充分滿足平臺(tái)服務(wù)的高可用性和擴(kuò)展性。
Global: 集群負(fù)責(zé)運(yùn)行整個(gè) TKEStack 平臺(tái)自身所需組件;
Cluster: 業(yè)務(wù)集群是由 TKEStack 控制臺(tái)統(tǒng)一管理,負(fù)責(zé)運(yùn)行業(yè)務(wù);
Installer: 負(fù)載安裝 Global 集群和管控組件;
Auth: 權(quán)限認(rèn)證組件,提供用戶認(rèn)證、授權(quán)相關(guān)功能;
Gateway: 網(wǎng)關(guān)組件,并運(yùn)行控制臺(tái)的 Web 界面服務(wù);
Platform: 平臺(tái)管理組件,提供包含集群管理等功能的平臺(tái)服務(wù);
Business: 業(yè)務(wù)管理組件,提供業(yè)務(wù)管理相關(guān)功能的后臺(tái)服務(wù);
Monitor: 監(jiān)控服務(wù)組件,提供監(jiān)控采集、上報(bào)、告警相關(guān)服務(wù);
Notify: 通知功能組件,提供消息通知相關(guān)的功能;
Registry: 鏡像服務(wù)組件,提供平臺(tái)鏡像倉(cāng)庫(kù)和 charts 倉(cāng)庫(kù)服務(wù);
Galaxy: 網(wǎng)絡(luò)插件,為集群提供多種網(wǎng)絡(luò)模式服務(wù);
Logagent: 日志管理組件,為平臺(tái)提供日志管理相關(guān)服務(wù);
Audit: 設(shè)計(jì)組件,提供審計(jì)服務(wù)功能;
Global 集群提供容器云平臺(tái)的支撐環(huán)境和運(yùn)行自身所需的各種組件,包括業(yè)務(wù)管理組件、平臺(tái)管理組件、權(quán)限認(rèn)證組件、監(jiān)控和告警組件、registry 鏡像倉(cāng)庫(kù)組件以及 gateway 前端頁(yè)面網(wǎng)關(guān)組件等等。各個(gè)組件以 workload 的形式靈活部署在 global 集群中,各組件多副本高可用方式部署,單個(gè)組件異?;蛘咧鳈C(jī)節(jié)點(diǎn)掉線等故障不會(huì)影響global集群的正常運(yùn)行,TKEStack仍可提供的管理功能,用戶正常的業(yè)務(wù)訪問不受影響。
在擴(kuò)展性方面,根據(jù)不同場(chǎng)景靈活配置集群,例如為承載大流量高可靠性的在線業(yè)務(wù),有必要提高 global 集群的規(guī)格配置,使其能夠管理大規(guī)模海量的業(yè)務(wù)集群及應(yīng)用資源;如果面向個(gè)人開發(fā)者或中小型業(yè)務(wù),甚至可以簡(jiǎn)化為僅數(shù)個(gè)節(jié)點(diǎn)組成的 global 集群,并通過該集群承載業(yè)務(wù)。
通過集成和使用 TKEStack,不僅支持 K8S 原生的資源調(diào)度、部署運(yùn)行、服務(wù)發(fā)現(xiàn)和彈性伸縮等整一套功能,TKEStack 還支持多種特性,方便用戶接入和使用,通過靈活的擴(kuò)展功能實(shí)現(xiàn)自身服務(wù)的增值。
TKEStack是一款專注于 Kubernetes 技術(shù)棧的,集易用性與擴(kuò)展性于一身的 K8S 發(fā)行版,符合Kubernetes接口標(biāo)準(zhǔn),產(chǎn)品底層完全兼容標(biāo)準(zhǔn) Kubernetes。因此,基于 Kubernetes 生態(tài)的應(yīng)用和服務(wù)都可以無縫遷移到 TKEStack上來,有標(biāo)準(zhǔn) K8S 運(yùn)維管理經(jīng)驗(yàn)的用戶可以平滑的切換到 TKEStack 平臺(tái)。
TKEStack 跟隨最新 K8S 版本,支持所有可用的功能和安全補(bǔ)丁,通過靈活的集群管理功能,方便的對(duì)集群進(jìn)行更新升級(jí)操作,幫助用戶體驗(yàn)和使用最新的生態(tài)技術(shù)。作為云原生的基礎(chǔ)設(shè)施平臺(tái),任何符合云原生規(guī)范和標(biāo)準(zhǔn)的應(yīng)用或項(xiàng)目,都可以構(gòu)建和運(yùn)行在 TKEStack 中。
提供和騰訊公有云版一致的 UI,界面簡(jiǎn)潔友好,支持配置各種 K8S 資源,方便用戶順利的創(chuàng)建和管理容器應(yīng)用,降低了容器平臺(tái)的學(xué)習(xí)和操作成本。TKEStack 還有著完善的鏡像倉(cāng)庫(kù)和應(yīng)用商店功能,內(nèi)部包含騰訊優(yōu)秀的開源容器應(yīng)用模板,方便用戶一鍵部署高質(zhì)量穩(wěn)定的應(yīng)用服務(wù)。
支持新建獨(dú)立集群或納管不同基礎(chǔ)設(shè)施上的已有 Kubernetes 集群,通過頁(yè)面或命令行集中管理多個(gè)集群,實(shí)現(xiàn)了混合云場(chǎng)景下的多集群統(tǒng)一管理能力。只需提供需要管理集群的 api 地址,token 和 ca 證書,TKEStack 就可以納管該集群。納管操作不會(huì)污染導(dǎo)入的集群,被納管集群不會(huì)增加額外的負(fù)載或配置。統(tǒng)一一致的用戶權(quán)限及業(yè)務(wù)管理等功能幫助用戶在集群間靈活切換,方便的部署和管理多集群應(yīng)用。
更多信息請(qǐng)參考 集群管理
支持多租戶管理和租戶間隔離,不僅僅局限于賬號(hào),而是包括集群、命名空間、業(yè)務(wù)、鏡像倉(cāng)庫(kù)等等,滿足大中型規(guī)模企業(yè)管理的需求。并且在租戶層次之下,擁有業(yè)務(wù)的概念,業(yè)務(wù)可以橫跨集群,為用戶提供統(tǒng)一的配額管理、命名空間、業(yè)務(wù)配額以及鏡像倉(cāng)庫(kù)和應(yīng)用商店等管理能力,方便用戶在多集群場(chǎng)景下編排業(yè)務(wù)應(yīng)用。
TKEStack提供統(tǒng)一和開放的認(rèn)證授權(quán)管理,通過擴(kuò)充 kubernetes 的 authz 和 authn 的 webhook,實(shí)現(xiàn)所有集群無需單獨(dú)配置 RBAC,為上層提供統(tǒng)一的可跨集群的資源授權(quán)。TKEStack自身的認(rèn)證和授權(quán)體系是完整的 K8S Style API 以及 oidc 認(rèn)證協(xié)議支持,可以很容易的由第三方集成商或開發(fā)者集成在自身的產(chǎn)品中,實(shí)現(xiàn)和 TKEStack 捆綁服務(wù)。企業(yè)級(jí)用戶可以方便的將已有的賬戶體系或組織架構(gòu)映射到 TKEStack 平臺(tái)中,從而節(jié)省容器平臺(tái)對(duì)接的工作量,專注于自身高價(jià)值業(yè)務(wù)的開發(fā)。
更多信息請(qǐng)參考 訪問管理
TKEStack 致力于打造一個(gè)運(yùn)維友好的管理平臺(tái),幫助運(yùn)維人員從繁雜的勞動(dòng)中解放出來。TKEStack 提供完整詳細(xì)的監(jiān)控及日志服務(wù),粒度精細(xì)到對(duì)集群下每一個(gè)容器每一條日志都有監(jiān)控和記錄。并且提供智能化的安裝工具、巡檢工具,幫助運(yùn)維人員對(duì)整個(gè)平臺(tái)全程進(jìn)行管理,提前發(fā)現(xiàn)風(fēng)險(xiǎn)點(diǎn),提高系統(tǒng)的可靠性。
快捷安裝
TKEStack 使用 tke-installer 安裝工具進(jìn)行安裝,通過界面化的方式引導(dǎo)用戶一鍵部署 TKEStack 容器平臺(tái)。tke-installer 安裝工具能夠檢查基本的環(huán)境信息,自動(dòng)適配 x86 或 arm 版本安裝驅(qū)動(dòng)和鏡像。離線的安裝方式更免去用戶拉取鏡像的煩惱,極大的提高了容器平臺(tái)部署的效率。
tke-installer 自動(dòng)等待和檢查每一步驟安裝完成,如果中間過程出錯(cuò)會(huì)自動(dòng)在日志界面提示相應(yīng)的信息,并支持根據(jù)用戶需要,選擇全新安裝或從失敗步驟繼續(xù)安裝。更支持以 hook 方式自定義安裝流程,用戶可以在安裝開始前、集群 ready 后以及安裝結(jié)束后三個(gè) hook 點(diǎn)添加自己的腳本或命令,實(shí)現(xiàn)平臺(tái)安裝的可定制化。
更多安裝信息請(qǐng)見:TKEStack安裝說明
監(jiān)控系統(tǒng)
免去部署和配置 prometheus 的復(fù)雜操作,TKEStack 提供高可用性和可擴(kuò)展性的細(xì)粒度監(jiān)控系統(tǒng),實(shí)時(shí)監(jiān)控 CPU,GPU,內(nèi)存,顯存,網(wǎng)絡(luò)帶寬,磁盤io等多種指標(biāo)并自動(dòng)繪制趨勢(shì)曲線,幫助運(yùn)維人員全維度的掌握平臺(tái)運(yùn)行狀態(tài)。
TKEStack通過prometheus組件監(jiān)控集群狀態(tài),prometheus 組件通過 addon 擴(kuò)展組件自動(dòng)完成安裝和配置,使用 influxdb,elasticsearch 等存儲(chǔ)監(jiān)控?cái)?shù)據(jù)。監(jiān)控?cái)?shù)據(jù)和指標(biāo)融入到平臺(tái)界面中以風(fēng)格統(tǒng)一圖表的風(fēng)格展示,支持以不同時(shí)間,粒度等條件,查詢集群,節(jié)點(diǎn),業(yè)務(wù),workload以及容器等多個(gè)層級(jí)的監(jiān)控?cái)?shù)據(jù),全維度的掌握平臺(tái)運(yùn)行狀態(tài)。
同時(shí)針對(duì)在可用性和可擴(kuò)展性方面,支持使用 thanos 架構(gòu)提供可靠的細(xì)粒度監(jiān)控和警報(bào)服務(wù),構(gòu)建具有高可用性和可擴(kuò)展性的細(xì)粒度監(jiān)控能力。
詳情請(qǐng)見 thanos架構(gòu)介紹
日志服務(wù)
提供的集群內(nèi)日志采集功能,支持將集群內(nèi)服務(wù)或集群節(jié)點(diǎn)特定路徑文件的日志發(fā)送至 Kafka、Elasticsearch等消費(fèi)端,支持采集容器標(biāo)準(zhǔn)輸出日志,容器內(nèi)文件日志以及主機(jī)內(nèi)文件日志。更提供事件持久化、審計(jì)等功能,實(shí)時(shí)記錄集群事件及操作日志記錄,幫助運(yùn)維人員存儲(chǔ)和分析集群內(nèi)部資源生命周期、資源調(diào)度、異常告警等情況。
需要為每個(gè)集群手動(dòng)開啟日志采集功能。日志采集功能開啟后,log-collector 會(huì)在集群內(nèi)以 DaemonSet 的形式運(yùn)行,并根據(jù)用戶通過日志采集規(guī)則配置的采集源和消費(fèi)端,從采集源進(jìn)行日志采集,將日志內(nèi)容發(fā)送到消費(fèi)端。
采集容器標(biāo)準(zhǔn)輸出日志 - 采集集群內(nèi)指定容器的標(biāo)準(zhǔn)輸出日志,采集到的日志信息將會(huì)以 JSON 格式輸出到用戶指定的消費(fèi)端,并會(huì)自動(dòng)附加相關(guān)的 Kubernetes metadata, 包括容器所屬 pod 的 label 和 annotation 等信息。
采集容器內(nèi)文件日志 - 采集集群內(nèi)指定 pod 內(nèi)文件的日志,用戶可以根據(jù)自己的需求,靈活的配置所需的容器和路徑,采集到的日志信息將會(huì)以 JSON 格式輸出到用戶指定的消費(fèi)端, 并會(huì)附加相關(guān)的 Kubernetes metadata,包括容器所屬 pod 的 label 和 annotation 等信息。
采集主機(jī)內(nèi)文件日志 - 采集集群內(nèi)所有節(jié)點(diǎn)的指定主機(jī)路徑的日志,log-collector 會(huì)采集集群內(nèi)所有節(jié)點(diǎn)上滿足指定路徑規(guī)則的文件日志,以 JSON 格式輸出到用戶指定的輸出端, 并會(huì)附加用戶指定的 metadata,包括日志來源文件的路徑和用戶自定義的 metadata。
更多日志信息請(qǐng)參考 日志管理
平臺(tái)巡檢
巡檢工具 kube-javis,通過 plugin 插件的方式靈活配置和擴(kuò)展,多維度的檢查 TKEStack 平臺(tái)下集群的健康狀況,支持集成到 TKEStack 平臺(tái)中,定期運(yùn)行并輸出診斷結(jié)果和修復(fù)建議。
Tkestack 的特色功能,以擴(kuò)展組件的方式來訂制集群的能力,擴(kuò)展集群的功能。TKEStack 已支持多種擴(kuò)展組件,包含:
GPUManager - GPU Manager 提供一個(gè) All-in-One 的 GPU 管理器, 基于K8S Device Plugin插件系統(tǒng)實(shí)現(xiàn), 提供了 GPU 虛擬化、拓?fù)浞峙?、GPU 共享、GPU 指標(biāo)查詢、GPU 容器 pre-check 等功能, 支持用戶在 K8S 集群中高效的使用 GPU 設(shè)備。
TApp - Tapp 是結(jié)合騰訊十多年海量運(yùn)營(yíng)經(jīng)驗(yàn),全新設(shè)計(jì)出的一種 workload,以 CRD 的形式實(shí)現(xiàn)。 Tapp可運(yùn)行有狀態(tài)、無狀態(tài)應(yīng)用,彌補(bǔ)了 StatefulSet 無法批量更新容器的不足,使用方式兼容傳統(tǒng)運(yùn)維習(xí)慣,更好的支持傳統(tǒng)的有狀態(tài)應(yīng)用,能夠?qū)崿F(xiàn)灰度升級(jí)和多版本的發(fā)布管理。
CronHPA - 使用 crontab 模式定期自動(dòng)擴(kuò)容工作負(fù)載,周期性地在給定的調(diào)度時(shí)間對(duì)工作負(fù)載進(jìn)行擴(kuò)縮容。
LBCF - 一款通用負(fù)載均衡控制面框架,對(duì)K8S內(nèi)部晦澀的運(yùn)行機(jī)制進(jìn)行了封裝并以 Webhook 的形式對(duì)外暴露,并提供強(qiáng)大的擴(kuò)展能力以滿足業(yè)務(wù)方在使用負(fù)載均衡時(shí)的個(gè)性化需求。
CSIOperator - 負(fù)責(zé) CSI 相關(guān)組件的部署與維護(hù),幫助用戶在集群中使用存儲(chǔ)。
IPAM - 通過 IPAM 擴(kuò)展組件安裝,擴(kuò)展了 K8S 調(diào)度插件,實(shí)現(xiàn) Float IP 的配置和管理,滿足復(fù)雜應(yīng)用容器化的特殊需求。
上述內(nèi)容就是如何進(jìn)行TKEStack整體架構(gòu)及性能分析,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。