本發(fā)明屬于數(shù)據(jù)處理,具體為一種緩存服務(wù)自動(dòng)編排的方法及系統(tǒng)。
背景技術(shù):
1、隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,大數(shù)據(jù)海量存儲(chǔ),業(yè)務(wù)爆發(fā)式增長(zhǎng),需要設(shè)計(jì)良好的系統(tǒng)需要考慮很多因素或者場(chǎng)景,例如:業(yè)務(wù)的可靠性、安全性,可伸縮性,可擴(kuò)展性,可定制化性,可維護(hù)性,穩(wěn)定性及用戶體驗(yàn)等。
2、為了更高效的支撐業(yè)務(wù)發(fā)展,越來越多的企業(yè)選擇了基于云原生(kubernetes)的理念來構(gòu)建平臺(tái),提升標(biāo)準(zhǔn)化以及提高資源利用率和部署效率;其中kubernetes的出現(xiàn)更是讓容器應(yīng)用和資源的管控變更得心應(yīng)手,高效的資源調(diào)度,靈活的伸縮與編排、服務(wù)自動(dòng)發(fā)現(xiàn)、故障自動(dòng)恢復(fù),讓kubernetes幾乎成為容器技術(shù)生態(tài)的絕對(duì)主角,kubernetes提供了一種擴(kuò)展機(jī)制,允許定義自己的資源類型,在集群上運(yùn)行一個(gè)pod來監(jiān)控各種類型的自定義資源并基于它來管理其他資源,基于operator來編排緩存服務(wù)(redis)時(shí),現(xiàn)有的原生operator很難做到7x24不間斷的用戶請(qǐng)求,提高服務(wù)的穩(wěn)定性,服務(wù)自動(dòng)發(fā)現(xiàn),故障自動(dòng)恢復(fù)等高難度技術(shù)問題,很難做到容器化服務(wù)99.99%的可用性指標(biāo),基于原生operator的缺陷,改良o(jì)perator流程,方法,擴(kuò)展性來保障業(yè)務(wù)的穩(wěn)定運(yùn)行,這就是自動(dòng)編排服務(wù)的要解決的問題。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的在于提供一種緩存服務(wù)自動(dòng)編排的方法及系統(tǒng),以解決上述背景技術(shù)中提出的問題。
2、為了實(shí)現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:一種緩存服務(wù)自動(dòng)編排的方法,具體步驟如下:
3、步驟1:
4、用戶根據(jù)需求申請(qǐng)所需容量,填寫相關(guān)數(shù)據(jù),提交下一個(gè)流程;
5、步驟2:
6、上級(jí)領(lǐng)導(dǎo)接收到流程后評(píng)估該資源的合理性,結(jié)合業(yè)務(wù)預(yù)算評(píng)估,可駁回,可進(jìn)入下一個(gè)流程;
7、步驟3:
8、管理員根據(jù)用戶提交的容量,確認(rèn)資源是否滿足業(yè)務(wù)需求,可駁回,可進(jìn)入觸發(fā)構(gòu)建流程;
9、步驟4:
10、進(jìn)入構(gòu)建流程后會(huì)進(jìn)入整個(gè)服務(wù)編排過程中;
11、步驟5:
12、創(chuàng)建lb及域名;
13、步驟6:
14、自此完成redis服務(wù)編排,交付用戶使用;
15、步驟7:
16、redis?operator將會(huì)集群進(jìn)行容量伸縮操作,對(duì)用戶無感知。
17、優(yōu)選地,步驟四中所述具體步驟包括:
18、步驟4.1、工單調(diào)用護(hù)航redis接口,該接口再調(diào)用k8s?api接口創(chuàng)建;
19、步驟4.2、根據(jù)工單參數(shù)直接調(diào)用k8s?api創(chuàng)建instances;
20、步驟4.3、operator?create函數(shù)將會(huì)根據(jù)工單參數(shù)進(jìn)行配置;
21、步驟4.4、operator獲取鏡像地址,根據(jù)模版所選擇相應(yīng)版本的鏡像;
22、步驟4.5、operator生成k8s?statefulset?yaml標(biāo)準(zhǔn)可解析的文件;
23、步驟4.6、operator調(diào)用內(nèi)置方法創(chuàng)建redis?pod和predixy;
24、步驟4.7、如果創(chuàng)建失敗,將會(huì)返回異常信息,提示相關(guān)錯(cuò)誤,進(jìn)行解決;
25、步驟4.8、如果創(chuàng)建成功,operator根據(jù)statefulset?yaml配置啟動(dòng)pod;
26、步驟4.9、pod啟動(dòng)完畢后,會(huì)自動(dòng)根據(jù)redis集群命令創(chuàng)建rediscluster集;群,同組2個(gè)node組成master/salve,并將所有node節(jié)點(diǎn)ip及端口寫入到predixy配置文件里。
27、優(yōu)選地,步驟五中所述具體步驟包括:
28、步驟5.1、調(diào)用4層lb接口,創(chuàng)建相應(yīng)lb實(shí)例,配置源站為容器predixy的ip及端口;
29、步驟5.2、lb創(chuàng)建成功后,調(diào)用dns接口,創(chuàng)建相應(yīng)的域名解析。
30、優(yōu)選地,步驟1中所述用戶在提交申請(qǐng)后需要對(duì)用戶填寫的數(shù)據(jù)進(jìn)行核對(duì),并對(duì)關(guān)鍵字段進(jìn)行驗(yàn)證,確保數(shù)據(jù)準(zhǔn)確無誤,包括容量、配置需求等。
31、優(yōu)選地,步驟4中所述在構(gòu)建前需要對(duì)k8s?api接口進(jìn)行監(jiān)控和測(cè)試,從而確保k8sapi接口的穩(wěn)定性和可用性以及在構(gòu)建前對(duì)operator的配置進(jìn)行嚴(yán)格的審查和測(cè)試,從而確保其準(zhǔn)確性,避免配置錯(cuò)誤導(dǎo)致的服務(wù)問題,使得構(gòu)建流程能夠順利的進(jìn)行。
32、優(yōu)選地,步驟7中所述在對(duì)redis?operator進(jìn)行容量伸縮操作時(shí),需要在非高峰時(shí)段進(jìn)行容量伸縮操作,從而盡可能的減少對(duì)用戶的影響,同時(shí)在redis?operator進(jìn)行容量伸縮操作時(shí),需要操作人員監(jiān)控容量伸縮過程,確保容量伸縮操作不會(huì)對(duì)現(xiàn)有服務(wù)造成影響,進(jìn)而確保服務(wù)的穩(wěn)定性。
33、一種緩存服務(wù)自動(dòng)編排的系統(tǒng),包括:
34、負(fù)載模塊:將整個(gè)集群接入運(yùn)維lb負(fù)載;
35、代理模塊:rediscluster集群使用predixy做代理;
36、部署模塊:rediscluster集群采用多個(gè)statsfulset+headless?service部署。
37、優(yōu)選地,所述代理模塊采用deployment部署,默認(rèn)3個(gè)副本,其中pod均為固定ip,且配置默認(rèn)值為2核cpu/2g內(nèi)存,同時(shí)支持滾動(dòng)升級(jí)配置和快速擴(kuò)展副本數(shù)量。
38、優(yōu)選地,所述代理模塊中每組redisclusternode為一組statsfulset+headless,里面2個(gè)副本即2個(gè)pod,分別為master和s?lave,其中每組pod之間設(shè)置反親和性,確保不在一個(gè)node上,但是不同的nodes組(statsfulset+headless)之間允許在同一個(gè)node,并且所有pod必須掛載存儲(chǔ),將/usr/local/redis-cluster/data持久化,里面存放的是cluster集群node信息和rdb文件,所有pod的ip均為固定ip,且pod異常之后,新pod起來后ip保持不變,且能讀到原來pod的持久化存儲(chǔ)信息,所有pod可滾動(dòng)調(diào)整配置信息。
39、本發(fā)明的有益效果如下:
40、本發(fā)明主要為解決在生產(chǎn)環(huán)境中中間件redis服務(wù)自動(dòng)編排提供高可靠的服務(wù)能力,通過建立標(biāo)準(zhǔn)的業(yè)務(wù)申請(qǐng)流程,從而規(guī)范化流程,標(biāo)準(zhǔn)化申請(qǐng)與配置,做到安全、可靠、穩(wěn)定,規(guī)避配置錯(cuò)亂等問題,并且redis版本統(tǒng)一,均為5.0.6,同時(shí)可以基于工單流程支持對(duì)接現(xiàn)有平臺(tái)標(biāo)準(zhǔn)化服務(wù),自動(dòng)創(chuàng)建pod并啟動(dòng)服務(wù)、組建集群,以及根據(jù)業(yè)務(wù)場(chǎng)景不同,定制化生成redis服務(wù)的模版配置,不同容量、規(guī)格、副本,提供服務(wù)實(shí)現(xiàn)降本增效,有效提高服務(wù)器利用率,資源合理使用,做到開箱即用,減少業(yè)務(wù)流程資源的申請(qǐng),部署,交付,通過容器化的能力,合理資源利用,減少資源成本的增加,做到服務(wù)穩(wěn)定運(yùn)行,故障自愈,安全可靠,在用戶網(wǎng)絡(luò)故障的情況下保障服務(wù)的可用性和可靠性。
1.一種緩存服務(wù)自動(dòng)編排的方法,其特征在于,具體步驟如下:
2.根據(jù)權(quán)利要求1所述的一種緩存服務(wù)自動(dòng)編排的方法,其特征在于:步驟四中所述具體步驟包括:
3.根據(jù)權(quán)利要求1所述的一種緩存服務(wù)自動(dòng)編排的方法,其特征在于:步驟五中所述具體步驟包括:
4.根據(jù)權(quán)利要求1所述的一種緩存服務(wù)自動(dòng)編排的方法,其特征在于:步驟1中所述用戶在提交申請(qǐng)后需要對(duì)用戶填寫的數(shù)據(jù)進(jìn)行核對(duì),并對(duì)關(guān)鍵字段進(jìn)行驗(yàn)證,確保數(shù)據(jù)準(zhǔn)確無誤,包括容量、配置需求等。
5.根據(jù)權(quán)利要求1所述的一種緩存服務(wù)自動(dòng)編排的方法,其特征在于:步驟4中所述在構(gòu)建前需要對(duì)k8s?api接口進(jìn)行監(jiān)控和測(cè)試,從而確保k8s?api接口的穩(wěn)定性和可用性以及在構(gòu)建前對(duì)operator的配置進(jìn)行嚴(yán)格的審查和測(cè)試,從而確保其準(zhǔn)確性,避免配置錯(cuò)誤導(dǎo)致的服務(wù)問題,使得構(gòu)建流程能夠順利的進(jìn)行。
6.根據(jù)權(quán)利要求1所述的一種緩存服務(wù)自動(dòng)編排的方法,其特征在于:步驟7中所述在對(duì)redis?operator進(jìn)行容量伸縮操作時(shí),需要在非高峰時(shí)段進(jìn)行容量伸縮操作,從而盡可能的減少對(duì)用戶的影響,同時(shí)在redis?operator進(jìn)行容量伸縮操作時(shí),需要操作人員監(jiān)控容量伸縮過程,確保容量伸縮操作不會(huì)對(duì)現(xiàn)有服務(wù)造成影響,進(jìn)而確保服務(wù)的穩(wěn)定性。
7.一種緩存服務(wù)自動(dòng)編排的系統(tǒng),其特征在于,包括:
8.根據(jù)權(quán)利要求7所述的一種緩存服務(wù)自動(dòng)編排的系統(tǒng),其特征在于:所述代理模塊采用deployment部署,默認(rèn)3個(gè)副本,其中pod均為固定ip,且配置默認(rèn)值為2核cpu/2g內(nèi)存,同時(shí)支持滾動(dòng)升級(jí)配置和快速擴(kuò)展副本數(shù)量。
9.根據(jù)權(quán)利要求7所述的一種緩存服務(wù)自動(dòng)編排的系統(tǒng),其特征在于:所述代理模塊中每組redisclusternode為一組statsfulset+headless,里面2個(gè)副本即2個(gè)pod,分別為master和slave,其中每組pod之間設(shè)置反親和性,確保不在一個(gè)node上,但是不同的nodes組(statsfulset+headless)之間允許在同一個(gè)node,并且所有pod必須掛載存儲(chǔ),將/usr/local/redis-clus?ter/data持久化,里面存放的是cluster集群node信息和rdb文件,所有pod的ip均為固定ip,且pod異常之后,新pod起來后ip保持不變,且能讀到原來pod的持久化存儲(chǔ)信息,所有pod可滾動(dòng)調(diào)整配置信息。