

[摘 要]新疆油田智能應(yīng)用集成平臺的建成是公司數(shù)字化轉(zhuǎn)型,智能化發(fā)展邁出的重要一步?,F(xiàn)階段,公司結(jié)合業(yè)務(wù)需求搭建了開發(fā)、測試、基礎(chǔ)及生產(chǎn)四大集群環(huán)境,為平臺的穩(wěn)定運(yùn)行打下基礎(chǔ)。平臺的投產(chǎn),極大縮短了信息系統(tǒng)的開發(fā)時間,有效降低了運(yùn)維人員的工作難度,為企業(yè)提質(zhì)增效提供有力支持。但隨著平臺承載業(yè)務(wù)量的不斷增加,現(xiàn)有集群架構(gòu)下暴露出來的問題愈發(fā)凸顯,集群改造升級迫在眉睫,以提升集群的高可用性與可擴(kuò)展性。本文就平臺集群現(xiàn)狀進(jìn)行梳理,并結(jié)合痛點(diǎn)問題轉(zhuǎn)化需求,設(shè)計(jì)一套企業(yè)高可用集群建設(shè)與管理方案。
[關(guān)鍵詞]云原生;集群;敏捷開發(fā);高可用
doi:10.3969/j.issn.1673-0194.2023.01.042
[中圖分類號]TP315;F272.7 [文獻(xiàn)標(biāo)識碼]A [文章編號]1673-0194(2023)01-0160-03
0" " "引 言
新疆油田公司自1955年成立至今,以勘探開發(fā)準(zhǔn)噶爾盆地為主要目標(biāo),涵蓋科學(xué)技術(shù)研究、油氣預(yù)探與油藏評價、油氣開發(fā)與生產(chǎn)、油氣儲運(yùn)與銷售、新能源5類核心業(yè)務(wù)和13項(xiàng)輔助業(yè)務(wù)。近年來,為實(shí)現(xiàn)建設(shè)世界一流綜合性能源公司的戰(zhàn)略目標(biāo),公司提出油田信息化建設(shè)要求,即充分分析目前信息化面臨的挑戰(zhàn),廣泛調(diào)研業(yè)內(nèi)主流平臺架構(gòu),探索融合阿里巴巴中臺思想,進(jìn)一步整合信息資源,搭建新疆油田智能應(yīng)用集成平臺,避免信息系統(tǒng)建設(shè)重復(fù)“造輪子”,實(shí)現(xiàn)系統(tǒng)的敏捷開發(fā)與服務(wù)共享,以信息化手段助推新疆油田公司的高質(zhì)量發(fā)展。
1" " "新疆油田智能應(yīng)用集成平臺部署環(huán)境現(xiàn)狀分析
智能油田應(yīng)用集成平臺是公司于2019年立項(xiàng)建設(shè)的新一代能力開放平臺,平臺融合中臺理念與最新IT技術(shù),以穩(wěn)定、高效、安全為目標(biāo),構(gòu)建企業(yè)服務(wù)資源池,通過工具、組件、服務(wù)共享的形式滿足跨業(yè)務(wù)、跨部門、跨技術(shù)棧的資源復(fù)用,構(gòu)建服務(wù)共享能力、敏捷開發(fā)能力、業(yè)務(wù)知識沉淀能力等,為應(yīng)用快速開發(fā)提供技術(shù)支持。
想要保證平臺的穩(wěn)定運(yùn)行,可靠的基礎(chǔ)環(huán)境不可或缺。經(jīng)調(diào)研,公司選擇了云原生時代主流的Docker+Kubernetes作為平臺服務(wù)封裝及運(yùn)行的基礎(chǔ)環(huán)境,兩者分別作為容器運(yùn)行時和容器編排領(lǐng)域的事實(shí)標(biāo)準(zhǔn)被絕大多數(shù)組織作為云原生平臺的基礎(chǔ),可靠性高且社區(qū)非?;钴S,版本迭代頻繁,技術(shù)支持體系完善。[1-2]基于此,公司結(jié)合油田核心業(yè)務(wù)需求,規(guī)劃基礎(chǔ)、開發(fā)、測試和生產(chǎn)四大集群環(huán)境,協(xié)同支撐平臺業(yè)務(wù)部署及服務(wù)共享。
平臺自投產(chǎn)平穩(wěn)運(yùn)行至今,共支持百余個項(xiàng)目的快速開發(fā),沉淀業(yè)務(wù)能力數(shù)十項(xiàng),大幅提高油田信息系統(tǒng)普及程度,為油田信息化建設(shè)做出突出貢獻(xiàn)。但隨著業(yè)務(wù)需求越發(fā)復(fù)雜,部署項(xiàng)目數(shù)量逐年增長,信息系統(tǒng)建設(shè)和集群運(yùn)維難度加大,部署所需資源不斷增加,現(xiàn)有架構(gòu)下的問題逐漸暴露,主要有以下幾點(diǎn)。
一是對于四個環(huán)境的運(yùn)維目前是分開進(jìn)行的。每個環(huán)境有自己的管理界面,業(yè)務(wù)服務(wù)出現(xiàn)問題需要挨個集群進(jìn)行排查,各集群資源分散監(jiān)控且監(jiān)控?cái)?shù)據(jù)種類較少,集群故障定位耗時長,解決不徹底。
二是集群內(nèi)應(yīng)用混合部署。不同種類應(yīng)用相互雜糅,某個應(yīng)用出現(xiàn)問題都可能影響到其他應(yīng)用,這種影響不斷擴(kuò)大從而導(dǎo)致整個集群出現(xiàn)故障,影響用戶使用。
三是生產(chǎn)集群高可用能力不足。生產(chǎn)環(huán)境作為最重要的集群環(huán)境,承擔(dān)著部署生產(chǎn)應(yīng)用的任務(wù),這些應(yīng)用面向全油田公司員工,支持生產(chǎn)作業(yè)的開展,確保公司生產(chǎn)目標(biāo)的順利完成,但目前生產(chǎn)集群高,可用能力不足,服務(wù)宕機(jī)將導(dǎo)致系統(tǒng)無法使用,再加上問題難定位、排查耗時長,存在影響生產(chǎn)進(jìn)度的可能。
基于上述問題,需要設(shè)計(jì)一套企業(yè)級高可用集群建設(shè)與管理方案,保證生產(chǎn)業(yè)務(wù)系統(tǒng)用戶使用的連續(xù)性與穩(wěn)定性。
2" " "方案設(shè)計(jì)需求
2.1" "多集群統(tǒng)一監(jiān)管
部署一套統(tǒng)一的監(jiān)管平臺,統(tǒng)一集群入口,提供豐富的可視化功能,支持從基礎(chǔ)設(shè)施到應(yīng)用的多維度指標(biāo)監(jiān)控,支持日志查詢、收集、告警和通知,具備可發(fā)現(xiàn)性、可觀測性以及安全性。同時,平臺應(yīng)面向不同用戶基于RBAC機(jī)制實(shí)現(xiàn)資源訪問準(zhǔn)入控制,確保不同角色用戶查看到對自己的工作任務(wù)推進(jìn)最有價值的信息,規(guī)避因權(quán)限過大導(dǎo)致的集群誤操作風(fēng)險(xiǎn)。
2.2" "集群故障隔離
改變現(xiàn)有集群內(nèi)部網(wǎng)絡(luò)通信機(jī)制,結(jié)合新集群網(wǎng)絡(luò)技術(shù),突破單集群限制,提供容器跨集群通信能力,將獨(dú)立大集群拆分為多個小集群,將原有集群內(nèi)混合部署的各類應(yīng)用分類部署到不同小集群中,比如中間件通過切分部署可共享給不同集群內(nèi)的多個服務(wù),實(shí)現(xiàn)資源共享。同時借助新網(wǎng)絡(luò)技術(shù)的實(shí)施,實(shí)時監(jiān)控集群網(wǎng)絡(luò)狀態(tài),統(tǒng)一管理集群子網(wǎng),配置跨集群網(wǎng)絡(luò)代理轉(zhuǎn)發(fā)流量并加密,最終實(shí)現(xiàn)集群的故障隔離。
2.3" "生產(chǎn)集群高可用能力提升
在集群物理切分的基礎(chǔ)上,借助新網(wǎng)絡(luò)方案實(shí)現(xiàn)多集群間的互聯(lián)互通,優(yōu)化自動伸縮機(jī)制,加強(qiáng)核心業(yè)務(wù)服務(wù)監(jiān)控,采用KEDA技術(shù)依據(jù)消息隊(duì)列topic數(shù)量多少自動擴(kuò)縮工作負(fù)載數(shù)量,合理利用集群資源,配置多Master節(jié)點(diǎn)數(shù)據(jù)備份及入口負(fù)載均衡,確保業(yè)務(wù)訪問時的可靠性。同時,預(yù)定義虛擬機(jī)模板及集群節(jié)點(diǎn)擴(kuò)容后置模板,實(shí)現(xiàn)節(jié)點(diǎn)的快速擴(kuò)容,提升生產(chǎn)集群高可用能力,保證核心業(yè)務(wù)系統(tǒng)使用的連續(xù)性。
3" " "方案技術(shù)路線
3.1" "總體框架
對生產(chǎn)集群進(jìn)行物理拆分,實(shí)現(xiàn)故障隔離與高可用,部署監(jiān)管平臺對所有集群統(tǒng)一進(jìn)行資源及事件監(jiān)管,實(shí)現(xiàn)事件、日志、性能數(shù)據(jù)的統(tǒng)一存儲和分析(圖1)。
3.2" "統(tǒng)一監(jiān)管技術(shù)路線
經(jīng)調(diào)研,選定KubeSphere作為多集群的統(tǒng)一監(jiān)管平臺。KubeSphere是一個企業(yè)級全?;萜髌脚_,功能契合方案需求。同時,KubeSphere以低耦合可插拔的方式支持各類主流云原生工具,再加上KubeSphere面向云原生進(jìn)行架構(gòu)設(shè)計(jì),分離前后端,后端各功能組件通過REST API對接外部系統(tǒng),不依賴底層基礎(chǔ)設(shè)施,部署環(huán)境友好。[3]
3.3" "故障隔離技術(shù)路線
3.3.1" "Cilium網(wǎng)絡(luò)方案
通過Cilium網(wǎng)絡(luò)方案實(shí)現(xiàn)多集群組網(wǎng),提供容器跨集群通信能力,實(shí)現(xiàn)集群故障隔離,進(jìn)一步拓展多集群服務(wù)范圍,例如將一個大集群拆分為多個小集群,服務(wù)跨集群部署為高可用服務(wù),服務(wù)多集群共享,拆分有狀態(tài)和無狀態(tài)服務(wù),等等。
3.3.2" "eBPF內(nèi)核擴(kuò)展
開發(fā)者使用eBPF匯編或eBPF特有的C語言編寫eBPF程序,之后使用LLVM/CLang編譯器將eBPF程序編譯成eBPF字節(jié)碼,最后通過bpf系統(tǒng)調(diào)用加載eBPF字節(jié)碼到內(nèi)核,實(shí)現(xiàn)內(nèi)核的擴(kuò)展。
3.3.3" 虛機(jī)系統(tǒng)升級
經(jīng)調(diào)研,選擇Ubuntu LTS作為新的虛機(jī)系統(tǒng),社區(qū)對Ubuntu提供的維護(hù)周期更長,內(nèi)核版本可持續(xù)更新,對eBPF技術(shù)、Cilium網(wǎng)絡(luò)方案、集群組網(wǎng)等提供更好支持,Ubuntu使用的apt包管理器在國內(nèi)同樣擁有大量鏡像源以供下載,公司內(nèi)部多個新虛機(jī)環(huán)境已全面轉(zhuǎn)向Ubuntu,至今運(yùn)行穩(wěn)定。同時,Kubernetes及其各類附屬組件、擴(kuò)展工具等已在Ubuntu上得到驗(yàn)證,穩(wěn)定可靠。
3.4" "集群高可用提升技術(shù)路線
3.4.1" "集群Master節(jié)點(diǎn)數(shù)據(jù)備份
構(gòu)建Kubernetes集群Master節(jié)點(diǎn)管理數(shù)據(jù)(集群配置數(shù)據(jù)、ETCD數(shù)據(jù))的備份機(jī)制,在不暫停集群核心功能的前提下,對數(shù)據(jù)進(jìn)行自動靜默備份。當(dāng)集群Master節(jié)點(diǎn)徹底損毀無法自愈時,可手動恢復(fù)或構(gòu)建新的Master節(jié)點(diǎn),快速恢復(fù)集群功能。
3.4.2" "工作負(fù)載自動伸縮
針對無狀態(tài)應(yīng)用服務(wù),通過實(shí)時監(jiān)控,分析并衡量服務(wù)負(fù)載程度、網(wǎng)絡(luò)流量等指標(biāo),自動伸縮應(yīng)用服務(wù)副本。當(dāng)應(yīng)用容器負(fù)載較高時,副本自動增加,并通過負(fù)載均衡分?jǐn)偭髁浚_保容器各項(xiàng)監(jiān)控指標(biāo)在合理范圍內(nèi),以保障應(yīng)用服務(wù)在高負(fù)載場景下的可靠性和穩(wěn)定性;當(dāng)應(yīng)用容器負(fù)載較低時,副本自動減少(最少保持1個副本),以節(jié)省集群節(jié)點(diǎn)內(nèi)存資源。
3.4.3" "集群節(jié)點(diǎn)快速擴(kuò)容
專門針對指定的Kubernetes集群制作特定虛機(jī)模板和初始化腳本,當(dāng)集群需要擴(kuò)展Master節(jié)點(diǎn)或Worker節(jié)點(diǎn)時,虛機(jī)模板和初始化腳本相互配合,在短時間內(nèi)快速完成節(jié)點(diǎn)初始化配置并加入集群,通過節(jié)點(diǎn)快速擴(kuò)容保證了集群面對未來不確定需求的靈活性,避免多次創(chuàng)建或刪除整個集群,降低運(yùn)維人員運(yùn)維壓力。
4" " "集群數(shù)據(jù)持久化
4.1" "持久化目的及PV插件選擇
部署在集群中的業(yè)務(wù)系統(tǒng)在使用過程中會不斷產(chǎn)生用戶數(shù)據(jù),這些數(shù)據(jù)大多比較重要,需要落盤存儲,集群通過聲明PVC的方式依托存儲類和PV進(jìn)行綁定,實(shí)現(xiàn)數(shù)據(jù)持久化的目的。
4.2" "NFS不同提供方式之間的對比
公司結(jié)合實(shí)際情況對能夠選擇的存儲連接方式進(jìn)行了讀寫性能測試,測試結(jié)果見表1。
結(jié)合測試結(jié)果,方案最終選擇在本地固態(tài)盤的基礎(chǔ)上部署TrueNAS存儲操作系統(tǒng)并通過TrueNAS提供NFS存儲以獲得相較現(xiàn)有集群速度大幅提高的NFS供給源。通過TrueNAS供給的優(yōu)勢在于統(tǒng)一管理存儲池,避免單獨(dú)掛載數(shù)據(jù)盤至各集群Master節(jié)點(diǎn)導(dǎo)致擴(kuò)容困難不易運(yùn)維,同時TrueNAS界面友好、易上手,系統(tǒng)穩(wěn)定、易安裝且完全開源,是相對較好的選擇。
5" " "總 結(jié)
本文設(shè)計(jì)的方案梳理平臺集群現(xiàn)狀及未來中長期業(yè)務(wù)需求,結(jié)合業(yè)內(nèi)前沿容器編排理念,將獨(dú)立大集群進(jìn)行切分,部署監(jiān)管平臺實(shí)現(xiàn)多集群統(tǒng)一納管與故障隔離,內(nèi)嵌高效集群網(wǎng)絡(luò)工具,打通獨(dú)立集群子網(wǎng),使跨集群通信變得簡單,同時采用多種技術(shù)手段提高生產(chǎn)集群高可用性及可擴(kuò)展性,并通過實(shí)驗(yàn)選取最高效的數(shù)據(jù)持久化方式,既滿足平臺后期業(yè)務(wù)需求,又進(jìn)一步降低運(yùn)維人員工作強(qiáng)度及難度,大幅提高研發(fā)人員開發(fā)效率,保證用戶系統(tǒng)使用的連續(xù)性,助力油田信息化建設(shè)攀登新高峰。
主要參考文獻(xiàn)
[1]汪照輝.DevOps重塑研發(fā)運(yùn)維體系[J].金融電子化,2022(1):74-76.
[2]楊海明.云原生技術(shù)推動數(shù)字化轉(zhuǎn)型[J].軟件和集成電路,2022(6):58-59.
[3]盛樂標(biāo),周慶林,游偉倩,等. Kubernetes高可用集群的部署實(shí)踐[J].電腦知識與技術(shù),2018,14(26):40-43.