本發(fā)明涉及計算機網(wǎng)絡(luò)及分布式領(lǐng)域,尤其涉及一種容器化nacos藍綠發(fā)布的方法及系統(tǒng)。
背景技術(shù):
1、nacos是阿里巴巴開源的一個服務(wù)注冊與發(fā)現(xiàn)平臺,在微服務(wù)架構(gòu)中廣泛應用,nacos提供服務(wù)注冊、發(fā)現(xiàn)、配置管理等功能,幫助微服務(wù)應用進行管理和治理。
2、隨著云原生應用的普及,容器化技術(shù)如docker、kubernetes成為了部署和管理應用的首選,服務(wù)的持續(xù)更新和迭代成為了維護服務(wù)質(zhì)量和持續(xù)交付能力的關(guān)鍵,然而目前容器化部署nacos時,進行nacos升級往往需要停機維護,導致了業(yè)務(wù)中斷和用戶感知的問題,伴隨著服務(wù)暫時不可用或性能下降,影響用戶體驗,尤其是在微服務(wù)架構(gòu)中,更新可能導致整個系統(tǒng)的不穩(wěn)定。
3、因此,如何實現(xiàn)nacos服務(wù)的平滑升級,成為了云原生應用領(lǐng)域亟需解決的技術(shù)挑戰(zhàn)。
技術(shù)實現(xiàn)思路
1、本發(fā)明的目的在于,針對上述的技術(shù)問題,提出一種容器化nacos藍綠發(fā)布的方法及系統(tǒng),利用藍綠發(fā)布策略對nacos服務(wù)進行無感知升級。
2、一種容器化nacos藍綠發(fā)布的方法,包括以下子步驟:
3、s1:容器化部署nacos服務(wù)集群;
4、s2:對兩套nacos服務(wù)集群規(guī)劃標簽;
5、s3:創(chuàng)建獨立的kubernetes?service;
6、s4:切換nacos藍綠集群。
7、進一步的,一種容器化nacos藍綠發(fā)布的方法,所述s1包括以下子步驟:
8、s11:在容器編排平臺上,部署兩套nacos服務(wù)集群、六個nacos服務(wù)pod、四個service地址;
9、s12:兩套nacos集群共用一套數(shù)據(jù)庫和配置字典configmap,保證數(shù)據(jù)和配置一致性,為實現(xiàn)客戶端無感知集群切換做準備;
10、所述nacos服務(wù)集群為三節(jié)點集群;
11、所述容器編排平臺包括kubernetes;
12、s13:集群之間通過獨立的kubernetes?service進行內(nèi)部通訊,通過service對外提供服務(wù)。
13、進一步的,一種容器化nacos藍綠發(fā)布的方法,所述s2包括以下子步驟:
14、s21:分別定義集群標簽為nacos-blue與nacos-green,用于區(qū)別nacos集群。
15、進一步的,一種容器化nacos藍綠發(fā)布的方法,所述s3包括以下子步驟:
16、s31:kubernetes?service統(tǒng)一對外暴露nacos集群服務(wù);
17、s32;nacos集群服務(wù)通過標簽選擇器決定訪問nacos集群流量最終目標,切換不同的nacos藍綠集群。
18、進一步的,一種容器化nacos藍綠發(fā)布的方法,所述s4包括以下子步驟:
19、s41:修改獨立的kubernetes?server標簽選擇器的標簽內(nèi)容,將所有請求流量又原有集群轉(zhuǎn)發(fā)至nacos藍色集群;
20、s42:避免nacos客戶端本地緩存問題導致客戶端依舊訪問舊有集群,將原有nacos集群做停機處理;
21、s43:借助nacos客戶端的健康探測機制,強制nacos客戶端清掉本地緩存,自動連接至新集群,達成流量切換期間客戶端無感知。
22、一種容器化nacos藍綠發(fā)布的系統(tǒng),包括容器化模塊、配置字典configmap、service模塊、藍綠發(fā)布策略、健康檢查機制;
23、所述容器化模塊將應用和依賴打包在容器鏡像中,實現(xiàn)應用的一致性部署和快速擴展;
24、所述配置字典configmap為kubernetes環(huán)境下存儲配置信息的關(guān)鍵資源對象;
25、所述service模塊定義訪問和暴露容器應用的方式,使外部通過固定的地址訪問到運行在一個或多個pod中的應用;
26、所述藍綠發(fā)布策略為零停機部署策略,通過同時運行兩個完全相同的生產(chǎn)環(huán)境實現(xiàn);
27、所述生產(chǎn)環(huán)境包括藍環(huán)境和綠環(huán)境;
28、所述健康檢查機制自動檢測服務(wù)實例的狀態(tài),在檢測到異常時自動進行恢復或重啟操作。
29、進一步的,一種容器化nacos藍綠發(fā)布的系統(tǒng),所述容器化模塊包括docker容器平臺、kubernetes;
30、所述docker容器平臺提供容器的打包、分發(fā)和運行機制;
31、所述kubernetes作為容器編排工具,支持自動部署、擴展和管理容器化應用。
32、進一步的,一種容器化nacos藍綠發(fā)布的系統(tǒng),所述配置字典configmap功能為在容器化nacos藍綠發(fā)布的場景中存儲nacos自身的配置信息,使nacos服務(wù)在啟動和運行時直接從配置字典configmap讀取配置,無需將配置硬編碼在鏡像或傳統(tǒng)的配置文件中;
33、所述service模塊功能為向pod組提供了統(tǒng)一的訪問接口,保持訪問地址的持久性,當后端pod發(fā)生變化時不影響前端訪問;
34、所述藍綠發(fā)布策略功能為在綠環(huán)境中部署并進行全面測試,確認無誤后將生產(chǎn)流量從藍環(huán)境平滑遷移到綠環(huán)境,實現(xiàn)無縫升級。
35、本發(fā)明的有益效果:一種容器化nacos藍綠發(fā)布的方法及系統(tǒng),通過藍綠發(fā)布策略,新舊版本同時運行,直到新版本完全就緒并通過健康檢查后,再將流量平滑切換到新版本,實現(xiàn)業(yè)務(wù)的零感知升級;若新版本存在問題,立即切換回舊版本,確保服務(wù)的穩(wěn)定性和可靠性;容器化部署方式提高了部署的靈活性和效率,支持在多種云平臺和環(huán)境中快速部署和擴展;容器化技術(shù)保證了在不同環(huán)境中應用運行的一致性,降低了環(huán)境差異導致的問題。
1.一種容器化nacos藍綠發(fā)布的方法,其特征在于,包括以下子步驟:
2.根據(jù)權(quán)利要求1所述的一種容器化nacos藍綠發(fā)布的方法,其特征在于,所述s1包括以下子步驟:
3.根據(jù)權(quán)利要求1所述的一種容器化nacos藍綠發(fā)布的方法,其特征在于,所述s2包括以下子步驟:
4.根據(jù)權(quán)利要求1所述的一種容器化nacos藍綠發(fā)布的方法,其特征在于,所述s3包括以下子步驟:
5.根據(jù)權(quán)利要求1所述的一種容器化nacos藍綠發(fā)布的方法,其特征在于,所述s4包括以下子步驟:
6.一種容器化nacos藍綠發(fā)布的系統(tǒng),基于權(quán)利要求1~5任意一項所述的一種容器化nacos藍綠發(fā)布的方法所實現(xiàn),其特征在于,包括容器化模塊、配置字典configmap、service模塊、藍綠發(fā)布策略、健康檢查機制;
7.根據(jù)權(quán)利要求6所述的一種容器化nacos藍綠發(fā)布的系統(tǒng),其特征在于,所述容器化模塊包括docker容器平臺、kubernetes;
8.根據(jù)權(quán)利要求6所述的一種容器化nacos藍綠發(fā)布的系統(tǒng),其特征在于,所述配置字典configmap功能為在容器化nacos藍綠發(fā)布的場景中存儲nacos自身的配置信息,使nacos服務(wù)在啟動和運行時直接從配置字典configmap讀取配置,無需將配置硬編碼在鏡像或傳統(tǒng)的配置文件中;