System.ArgumentOutOfRangeException: 索引和長(zhǎng)度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術(shù)實(shí)現(xiàn)步驟摘要】
本申請(qǐng)涉及云計(jì)算,尤其涉及一種k8s集群中的組件升級(jí)方法、裝置及電子設(shè)備。
技術(shù)介紹
1、在公有云場(chǎng)景下,為了提供更好的性能以及更高的服務(wù)穩(wěn)定性,云數(shù)據(jù)庫(kù)mysql一般選擇部署在k8s環(huán)境中。用戶訂購(gòu)的云mysql實(shí)例是由k8s的多個(gè)容器組(pod)組合而成,而實(shí)例的功能以及數(shù)據(jù)庫(kù)本身能力都封裝在pod中,這些pod是由軟件廠商的自定義資源定義(custom?resource?definition,crd)管控。
2、隨著功能的不斷迭代,存量用戶實(shí)例的pod內(nèi)的管理組件以及一些必要功能存在升級(jí)需求。然而,在對(duì)pod升級(jí)的過程中,pod狀態(tài)發(fā)生變化,從而導(dǎo)致公有云用戶的業(yè)務(wù)斷連。
技術(shù)實(shí)現(xiàn)思路
1、本申請(qǐng)實(shí)施例提供一種k8s集群中的組件升級(jí)方法、裝置及電子設(shè)備,以解決在對(duì)pod升級(jí)的過程中,公有云用戶的業(yè)務(wù)斷連的問題。
2、為解決上述技術(shù)問題,本申請(qǐng)是這樣實(shí)現(xiàn)的:
3、第一方面,本申請(qǐng)實(shí)施例提供了一種k8s集群中的組件升級(jí)方法,所述方法包括:
4、在k8s集群中的第一容器組pod中的組件升級(jí)的情況下,通過適配器組件接收目標(biāo)消息體集合,所述目標(biāo)消息體集合中包括第一組件向所述k8s集群發(fā)送的第一消息體集合和所述k8s集群向第二組件發(fā)送的第二消息體集合;
5、通過所述適配器組件從所述目標(biāo)消息體集合中獲取與所述第一pod關(guān)聯(lián)的第一消息;
6、通過所述適配器組件根據(jù)所述第一pod所屬的角色對(duì)所述第一消息進(jìn)行處理,并將處理后
7、通過所述適配器組件更新所述目標(biāo)消息體集合,并向所述k8s集群發(fā)送更新后的目標(biāo)消息體集合,其中,所述更新后的目標(biāo)消息體集合包括所述第一消息體。
8、可選地,所述通過適配器組件接收目標(biāo)消息體集合,包括:
9、在通過目的尋址組件將所述k8s集群的目的尋址修改為所述適配器組件的情況下,通過所述適配器組件接收所述第一組件向所述k8s集群發(fā)送的所述第一消息體集合;
10、在所述k8s集群向所述第二組件發(fā)送所述第二消息體集合的情況下,通過所述適配器組件接收劫持組件劫持并發(fā)送的所述第二消息體集合。
11、可選地,所述通過所述適配器組件接收所述第一組件向所述k8s集群發(fā)送的所述第一消息體集合之前,所述方法還包括:
12、通過所述目的尋址組件將所述k8s集群的目的尋址修改為所述適配器組件;
13、所述通過所述適配器組件更新所述目標(biāo)消息體集合之后,所述方法還包括:
14、在所述第一pod中的組件升級(jí)完成的情況下,通過所述目標(biāo)尋址組件將所述k8s集群的目的尋址由所述適配器組件修改為所述k8s集群。
15、可選地,所述通過所述適配器組件接收所述第一組件向所述k8s集群發(fā)送的所述第一消息體集合之前,所述方法還包括:
16、在k8s集群中的第一容器組pod中的組件升級(jí)的情況下,若所述k8s集群向第二組件發(fā)送第二消息體集合,通過所述劫持組件對(duì)所述第二消息體集合執(zhí)行劫持操作,并向所述適配器組件發(fā)送所述第二消息體集合;
17、所述通過所述適配器組件更新所述目標(biāo)消息體集合之后,所述方法還包括:
18、在所述第一pod中的組件升級(jí)完成的情況下,控制所述劫持組件停止劫持操作。
19、可選地,所述目標(biāo)消息體集合為kubelet向所述k8s集群發(fā)送的第一消息體集合或所述k8s集群向所述第二組件發(fā)送的第二消息體集合;所述通過所述適配器組件根據(jù)所述第一pod所屬的角色對(duì)所述第一消息進(jìn)行處理,包括以下任一項(xiàng):
20、在所述第一pod的角色為主庫(kù),且所述第一消息指示所述第一pod的工作狀態(tài)處于預(yù)設(shè)的異常狀態(tài)的情況下,通過所述適配器組件將所述第一消息中的工作狀態(tài)由所述異常狀態(tài)修改為正常運(yùn)行狀態(tài);
21、在所述第一pod的角色為備庫(kù),且所述第一pod包括主庫(kù)標(biāo)簽的情況下,通過所述適配器組件將所述第一消息從所述目標(biāo)消息體集合中刪除。
22、可選地,所述目標(biāo)消息體集合為kubelet向所述k8s集群發(fā)送的第一消息體集合;所述通過適配器組件接收目標(biāo)消息體集合之后,所述方法還包括:
23、通過所述適配器組件從所述目標(biāo)消息體集合中獲取與第二pod關(guān)聯(lián)的第二消息,所述第二pod為所述k8s集群中除所述第一pod之外的pod;
24、通過所述適配器組件根據(jù)所述第二pod所屬的角色對(duì)所述第二消息進(jìn)行封裝得到第二消息體,所述第二消息體用于指示所述第二pod處于正常運(yùn)行狀態(tài);
25、通過適配器組件更新所述目標(biāo)消息體集合,并向所述k8s集群發(fā)送包括所述更新后的目標(biāo)消息體集合,其中,所述更新后的目標(biāo)消息體集合中包括所述第二消息體。
26、可選地,所述目標(biāo)消息體集合為所述第一pod向所述k8s集群發(fā)送的第一消息體集合;所述通過適配器組件根據(jù)所述第一pod所屬的角色對(duì)所述第一消息進(jìn)行處理,包括:
27、在所述第一pod的角色為主庫(kù),且所述第一消息請(qǐng)求維持所述第一pod的狀態(tài)為主庫(kù)狀態(tài)的情況下,通過所述適配器組件更新所述第一pod的主庫(kù)狀態(tài)。
28、可選地,所述通過適配器組件更新所述第一pod的主庫(kù)狀態(tài)之后,所述方法還包括:
29、通過適配器組件向所述第一pod發(fā)送維持所述主庫(kù)狀態(tài)的響應(yīng)消息。
30、可選地,所述目標(biāo)消息體集合為所述第一pod向所述k8s集群發(fā)送的第一消息體集合;所述方法還包括:
31、在所述第一pod的角色為備庫(kù),且所述第一消息請(qǐng)求將所述第一pod的狀態(tài)由備庫(kù)狀態(tài)切換為主庫(kù)狀態(tài)的情況下,通過所述適配器組件向所述第一pod發(fā)送請(qǐng)求失敗的響應(yīng)消息。
32、可選地,所述通過適配器組件接收目標(biāo)消息體集合之前,所述方法還包括:
33、通過所述適配器組件獲取云數(shù)據(jù)庫(kù)服務(wù)信息對(duì)應(yīng)的目標(biāo)pod的信息,所述目標(biāo)pod包括所述第一pod和第二pod;
34、通過所述適配器組件建立所述云數(shù)據(jù)庫(kù)服務(wù)信息、所述目標(biāo)pod的信息與所述目標(biāo)pod所屬的角色之間的映射關(guān)系,所述角色包括主庫(kù)或備庫(kù)。
35、第二方面,本申請(qǐng)實(shí)施例提供一種k8s集群中的組件升級(jí)裝置,所述裝置包括:
36、接收模塊,用于在k8s集群中的第一容器組pod中的組件升級(jí)的情況下,通過適配器組件接收目標(biāo)消息體集合,所述目標(biāo)消息體集合中包括第一組件向所述k8s集群發(fā)送的第一消息體集合和所述k8s集群向第二組件發(fā)送的第二消息體集合;
37、第一獲取模塊,用于通過所述適配器組件從所述目標(biāo)消息體集合中獲取與所述第一pod關(guān)聯(lián)的第一消息;
38、處理模塊,用于通過所述適配器組件根據(jù)所述第一pod所屬的角色對(duì)所述第一消息進(jìn)行處理,并將處理后的第一消息進(jìn)行封裝得到第一消息體,所述第一消息體用于指示所述第一po本文檔來自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
1.一種K8s集群中的組件升級(jí)方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通過適配器組件接收目標(biāo)消息體集合,包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述通過所述適配器組件接收所述第一組件向所述K8s集群發(fā)送的所述第一消息體集合之前,所述方法還包括:
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述通過所述適配器組件接收所述第一組件向所述K8s集群發(fā)送的所述第一消息體集合之前,所述方法還包括:
5.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其特征在于,所述目標(biāo)消息體集合為kubelet向所述K8s集群發(fā)送的第一消息體集合或所述K8s集群向所述第二組件發(fā)送的第二消息體集合;所述通過所述適配器組件根據(jù)所述第一POD所屬的角色對(duì)所述第一消息進(jìn)行處理,包括以下任一項(xiàng):
6.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其特征在于,所述目標(biāo)消息體集合為kubelet向所述K8s集群發(fā)送的第一消息體集合;所述通過適配器組件接收目標(biāo)消息體集合之后,所述方法還包括:
7.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的
8.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述通過適配器組件更新所述第一POD的主庫(kù)狀態(tài)之后,所述方法還包括:
9.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其特征在于,所述目標(biāo)消息體集合為所述第一POD向所述K8s集群發(fā)送的第一消息體集合;所述方法還包括:
10.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其特征在于,所述通過適配器組件接收目標(biāo)消息體集合之前,所述方法還包括:
11.一種K8s集群中的組件升級(jí)裝置,其特征在于,包括:
12.一種電子設(shè)備,其特征在于,包括:處理器、存儲(chǔ)器及存儲(chǔ)在所述存儲(chǔ)器上并可在所述處理器上運(yùn)行的程序,所述程序被所述處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1至10中任一項(xiàng)所述的K8s集群中的組件升級(jí)方法的步驟。
13.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1至10中任一項(xiàng)所述的K8s集群中的組件升級(jí)方法的步驟。
14.一種計(jì)算機(jī)程序產(chǎn)品,其特征在于,包括計(jì)算機(jī)指令,該計(jì)算機(jī)指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1至10中任一項(xiàng)所述的K8s集群中的組件升級(jí)方法的步驟。
...【技術(shù)特征摘要】
1.一種k8s集群中的組件升級(jí)方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通過適配器組件接收目標(biāo)消息體集合,包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述通過所述適配器組件接收所述第一組件向所述k8s集群發(fā)送的所述第一消息體集合之前,所述方法還包括:
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述通過所述適配器組件接收所述第一組件向所述k8s集群發(fā)送的所述第一消息體集合之前,所述方法還包括:
5.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其特征在于,所述目標(biāo)消息體集合為kubelet向所述k8s集群發(fā)送的第一消息體集合或所述k8s集群向所述第二組件發(fā)送的第二消息體集合;所述通過所述適配器組件根據(jù)所述第一pod所屬的角色對(duì)所述第一消息進(jìn)行處理,包括以下任一項(xiàng):
6.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其特征在于,所述目標(biāo)消息體集合為kubelet向所述k8s集群發(fā)送的第一消息體集合;所述通過適配器組件接收目標(biāo)消息體集合之后,所述方法還包括:
7.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其特征在于,所述目標(biāo)消息體集合為所述第一pod向所述k8s集群發(fā)送的第一消息體集合;所述通過適配器組件根據(jù)...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:李宏源,秦鯤鵬,密鵬翔,
申請(qǐng)(專利權(quán))人:中移蘇州軟件技術(shù)有限公司,
類型:發(fā)明
國(guó)別省市:
還沒有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。