本申請(qǐng)涉及計(jì)算機(jī)負(fù)載均衡,具體是一種基于容器自動(dòng)擴(kuò)縮的dns自動(dòng)調(diào)度方法。
背景技術(shù):
1、在現(xiàn)代網(wǎng)絡(luò)架構(gòu)中,負(fù)載均衡器(load?balancer,簡(jiǎn)稱lb)是分發(fā)網(wǎng)絡(luò)流量、保證系統(tǒng)高可用性和可靠性的重要組件。云計(jì)算的普及,使得許多企業(yè)和開發(fā)者選擇使用云產(chǎn)品提供的負(fù)載均衡服務(wù)(如aws?elastic?load?balancer,azure?load?balancer,gcp?loadbalancing等)來(lái)管理其網(wǎng)絡(luò)流量。這些云產(chǎn)品lb具備易于管理、自動(dòng)擴(kuò)展、安全性高等優(yōu)點(diǎn)。然而,隨著業(yè)務(wù)的發(fā)展和對(duì)成本優(yōu)化的需求,現(xiàn)有云產(chǎn)品lb在一些方面的缺陷和不足逐漸顯現(xiàn)出來(lái),這些缺點(diǎn)主要有:
2、1、成本高昂:云產(chǎn)品lb的使用費(fèi)用通常按流量和實(shí)例數(shù)量收費(fèi)。在高并發(fā)和大流量場(chǎng)景下,成本顯著增加,給企業(yè)帶來(lái)較大的經(jīng)濟(jì)負(fù)擔(dān);
3、2、靈活性和可控性不足:云產(chǎn)品lb的配置和功能受限于云服務(wù)提供商的限制,用戶在靈活定制和優(yōu)化方面受到一定的限制,無(wú)法根據(jù)自身業(yè)務(wù)需求進(jìn)行精細(xì)化調(diào)整;
4、3、依賴單一供應(yīng)商:依賴于單一云服務(wù)提供商的lb,存在一定的供應(yīng)商鎖定風(fēng)險(xiǎn)。一旦供應(yīng)商的服務(wù)出現(xiàn)問題或價(jià)格調(diào)整,用戶難以快速遷移到其他解決方案;
5、4、自動(dòng)擴(kuò)展響應(yīng)速度慢:雖然云產(chǎn)品lb通常具備自動(dòng)擴(kuò)展功能,但響應(yīng)速度有時(shí)無(wú)法滿足高并發(fā)場(chǎng)景下的實(shí)時(shí)擴(kuò)展需求,可能導(dǎo)致短暫的性能瓶頸或服務(wù)中斷。
6、因此,亟需一種更優(yōu)的dns自動(dòng)調(diào)度技術(shù)。
技術(shù)實(shí)現(xiàn)思路
1、本申請(qǐng)的目的在于提供一種基于容器自動(dòng)擴(kuò)縮的dns自動(dòng)調(diào)度方法,以解決上述背景中提出的技術(shù)問題。
2、為實(shí)現(xiàn)上述目的,本申請(qǐng)公開了以下技術(shù)方案:一種基于容器自動(dòng)擴(kuò)縮的dns自動(dòng)調(diào)度方法,該方法包括以下步驟:
3、s1-以kubernetes容器方式搭建開源nginx服務(wù),包括:在kubernetes集群中,以容器化的方式部署開源nginx服務(wù),其中,在nginx服務(wù)中,nginx集群作為反向代理服務(wù)器,負(fù)責(zé)接收和分發(fā)前端請(qǐng)求到后端服務(wù);
4、s2-對(duì)nginx服務(wù)進(jìn)行kubernetes?hpa自動(dòng)擴(kuò)縮,并配置擴(kuò)縮閾值,包括:配置kubernetes的hpa以自動(dòng)管理nginx服務(wù)的擴(kuò)展和縮減,所述擴(kuò)縮閾值為資源使用率閾值,當(dāng)負(fù)載增加時(shí),自動(dòng)增加nginx集群的實(shí)例數(shù)量;當(dāng)負(fù)載減少時(shí),自動(dòng)減少nginx集群的實(shí)例數(shù)量;
5、s3-以kubernetes容器方式部署自研crondns服務(wù),包括:部署crondns服務(wù),crondns服務(wù)定時(shí)主動(dòng)獲取nginx集群的ip變更,并將最新的ip地址自動(dòng)注冊(cè)到云產(chǎn)品的dns服務(wù)中;
6、s4-配置crondns,包括獲取nginx配置和對(duì)接目標(biāo)dns配置;其中,所述獲取nginx配置具體包括:配置crondns以獲取nginx集群的相關(guān)信息,該相關(guān)信息包括nginx集群所在的namespace和label標(biāo)簽;所述對(duì)接目標(biāo)dns配置具體包括:配置crondns對(duì)接目標(biāo)dns服務(wù),所述目標(biāo)dns服務(wù)包括云信息、訪問密鑰和dns接口信息。
7、作為優(yōu)選,所述的負(fù)責(zé)接收和分發(fā)前端請(qǐng)求到后端服務(wù),具體包括:
8、nginx集群接收來(lái)自dns解析后的請(qǐng)求,并將請(qǐng)求轉(zhuǎn)發(fā)到后端應(yīng)用服務(wù)器;
9、nginx集群根據(jù)配置的負(fù)載均衡策略將請(qǐng)求均勻分布到集群內(nèi)的各個(gè)應(yīng)用服務(wù)器上。
10、作為優(yōu)選,所述負(fù)載均衡策略包括預(yù)配置的輪詢策略和最少連接策略。
11、作為優(yōu)選,所述資源使用率閾值包括cpu使用率和內(nèi)存使用率。
12、作為優(yōu)選,所述nginx集群采用各云dns產(chǎn)品服務(wù)作為負(fù)載均衡器;其中,所述的各云dns產(chǎn)品服務(wù)提供的dns服務(wù),用于解析域名并將請(qǐng)求分發(fā)到nginx集群的各個(gè)節(jié)點(diǎn)。
13、作為優(yōu)選,所述hpa為kubernetes的原生自動(dòng)擴(kuò)縮容服。
14、作為優(yōu)選,所述的配置crondns用于連接dns?api,且具有可操作的權(quán)限;當(dāng)coredns發(fā)現(xiàn)nginx集群的副本數(shù)有新增時(shí),獲取nginx集群實(shí)例的公網(wǎng)ip;并通過云dns產(chǎn)品服務(wù)的云api向其域名所對(duì)應(yīng)的記錄添加該公網(wǎng)ip,否則刪除縮減的公網(wǎng)ip。
15、本申請(qǐng)的基于容器自動(dòng)擴(kuò)縮的dns自動(dòng)調(diào)度方法,具有以下技術(shù)效果:
16、第一:降低云成本:自建nginx服務(wù)無(wú)需依賴云服務(wù)商提供的lb服務(wù),通過自建nginx服務(wù),企業(yè)可以使用自有資源或選擇更經(jīng)濟(jì)的云方案,從而大幅降低了負(fù)載均衡的使用成本。此外,自建方案減少了云服務(wù)商按使用量收費(fèi)的費(fèi)用,優(yōu)化了運(yùn)營(yíng)成本;
17、第二:提高靈活性和可控性:自建nginx和crondns服務(wù)允許用戶根據(jù)具體業(yè)務(wù)需求進(jìn)行靈活配置和調(diào)整,提升了系統(tǒng)的可控性。用戶可以自主定義擴(kuò)展策略、負(fù)載均衡策略和dns更新頻率,滿足特定場(chǎng)景的需求。此外,利用kubernetes的hpa功能,nginx服務(wù)能夠根據(jù)實(shí)際負(fù)載情況自動(dòng)擴(kuò)展和縮減,提供了高度的靈活性和可控性。企業(yè)可以根據(jù)具體業(yè)務(wù)需求自定義擴(kuò)展策略和負(fù)載均衡策略,滿足特定場(chǎng)景的需求;
18、第三:完全解耦業(yè)務(wù):nginx和crondns服務(wù)的獨(dú)立運(yùn)行使得業(yè)務(wù)邏輯與底層負(fù)載均衡器解耦,增強(qiáng)了系統(tǒng)的穩(wěn)定性和可維護(hù)性。無(wú)論底層負(fù)載均衡器如何變化,業(yè)務(wù)邏輯都可以保持不變,減少了對(duì)系統(tǒng)的影響;
19、第四:高可用性和擴(kuò)展性:通過kubernetes的hpa功能,nginx服務(wù)能夠根據(jù)負(fù)載情況自動(dòng)擴(kuò)展和縮減,確保系統(tǒng)在高并發(fā)場(chǎng)景下的高可用性。同時(shí),crondns服務(wù)自動(dòng)更新dns記錄,保證流量能夠正確分發(fā)到最新的nginx集群實(shí)例,提高系統(tǒng)的可靠性;
20、第五:減少云依賴:自研crondns服務(wù)能夠兼容大部分云服務(wù)商的dns接口,確保系統(tǒng)在多云環(huán)境下的無(wú)縫集成,減少了對(duì)單一云服務(wù)商的依賴。用戶可以自由選擇云服務(wù)商,提高了系統(tǒng)的兼容性和靈活性;
21、第六:易于集成和維護(hù):nginx和crondns服務(wù)在kubernetes環(huán)境下運(yùn)行,具有良好的集成性和可維護(hù)性。利用kubernetes的容器編排能力,簡(jiǎn)化了部署和管理過程,減少了運(yùn)維成本和復(fù)雜度;
22、第七:安全性增強(qiáng):自建負(fù)載均衡器和dns服務(wù)使得敏感數(shù)據(jù)和配置可以完全由企業(yè)自身控制,減少了潛在的安全風(fēng)險(xiǎn)。通過合理的權(quán)限和訪問控制,進(jìn)一步提升系統(tǒng)的安全性;
23、第八:優(yōu)化性能:通過自定義nginx配置和優(yōu)化負(fù)載均衡策略,可以針對(duì)特定應(yīng)用場(chǎng)景進(jìn)行性能調(diào)優(yōu),提升系統(tǒng)的響應(yīng)速度和處理能力。同時(shí),crondns服務(wù)確保dns記錄的實(shí)時(shí)更新,減少了dns解析延遲,優(yōu)化了整體性能;
24、第九:快速響應(yīng)需求變化:系統(tǒng)具備快速響應(yīng)業(yè)務(wù)需求變化的能力,通過自動(dòng)擴(kuò)縮容和dns動(dòng)態(tài)更新,能夠迅速適應(yīng)流量波動(dòng)和業(yè)務(wù)增長(zhǎng),保持系統(tǒng)的穩(wěn)定性和高效性。
1.一種基于容器自動(dòng)擴(kuò)縮的dns自動(dòng)調(diào)度方法,其特征在于,該方法包括以下步驟:
2.根據(jù)權(quán)利要求1所述的基于容器自動(dòng)擴(kuò)縮的dns自動(dòng)調(diào)度方法,其特征在于,所述的負(fù)責(zé)接收和分發(fā)前端請(qǐng)求到后端服務(wù),具體包括:
3.根據(jù)權(quán)利要求2所述的基于容器自動(dòng)擴(kuò)縮的dns自動(dòng)調(diào)度方法,其特征在于,所述負(fù)載均衡策略包括預(yù)配置的輪詢策略和最少連接策略。
4.根據(jù)權(quán)利要求1所述的基于容器自動(dòng)擴(kuò)縮的dns自動(dòng)調(diào)度方法,其特征在于,所述資源使用率閾值包括cpu使用率和內(nèi)存使用率。
5.根據(jù)權(quán)利要求1所述的基于容器自動(dòng)擴(kuò)縮的dns自動(dòng)調(diào)度方法,其特征在于,所述nginx集群采用各云dns產(chǎn)品服務(wù)作為負(fù)載均衡器;其中,所述的各云dns產(chǎn)品服務(wù)提供的dns服務(wù),用于解析域名并將請(qǐng)求分發(fā)到nginx集群的各個(gè)節(jié)點(diǎn)。
6.根據(jù)權(quán)利要求1所述的基于容器自動(dòng)擴(kuò)縮的dns自動(dòng)調(diào)度方法,其特征在于,所述hpa為kubernetes的原生自動(dòng)擴(kuò)縮容服。
7.根據(jù)權(quán)利要求1所述的基于容器自動(dòng)擴(kuò)縮的dns自動(dòng)調(diào)度方法,其特征在于,所述的配置crondns用于連接dns?api,且具有可操作的權(quán)限;當(dāng)coredns發(fā)現(xiàn)nginx集群的副本數(shù)有新增時(shí),獲取nginx集群實(shí)例的公網(wǎng)ip;并通過云dns產(chǎn)品服務(wù)的云api向其域名所對(duì)應(yīng)的記錄添加該公網(wǎng)ip,否則刪除縮減的公網(wǎng)ip。