本發明實施例涉及分布式數據庫,尤其涉及一種云原生分布式數據庫升級方法、裝置、設備、介質及產品。
背景技術:
1、在云原生時代,數據庫技術經歷了顯著變革,以滿足快速發展的應用需求。分布式數據庫提供高可用性和可擴展性,支持微服務架構下的多租戶和靈活數據模型。無服務器計算模式使資源按需自動調整,容器化技術增強了數據庫的靈活性和管理性。此外,實時數據處理通過事件驅動架構得以實現,多模型數據庫則支持多種數據處理方式。這些技術共同推動了云原生數據庫的高性能和靈活數據管理解決方案的發展。
2、現有云原生數據庫技術中,當對云平臺已經部署好的數據庫進行升級時,是將舊的容器刪除,然后重新創建一個新的容器,該過程需要重新計算以將組件調度到合適的節點上,也需要為新的容器重新分配網絡資源,由于分布式數據庫整個網絡鏈路比較復雜,重建網絡鏈路需要花費很長時間,同時拉取鏡像也需要時間,尤其對于鏡像較大的場景,耗費時間更長,這都影響了升級效率。而且現有技術中通常不支持單獨升級某個容器,導致升級監控等其他組件時需要暫停業務,這也影響了數據庫的升級效率。
技術實現思路
1、本發明實施例提供一種云原生分布式數據庫升級方法、裝置、設備、介質及產品,以解決現有技術中升級效率低下的問題。
2、第一方面,本發明實施例提供了一種云原生分布式數據庫升級方法,所述分布式數據庫基于kubernetes所搭建的云環境進行部署,數據庫組件以容器方式部署,所述方法包括:
3、通過部署在主節點上的goldendb-controller組件接收用戶的升級請求,并確定需要升級的目標容器所在的目標工作節點;
4、通過部署在所述目標工作節點上的goldendb-daemonset組件接收所述主節點下發的升級信息,以根據所述升級信息拉取新鏡像到所述目標工作節點,并基于所述新鏡像對所述目標容器對應的有狀態集中的容器鏡像信息進行更新;
5、通過部署在所述目標工作節點上的kubelet組件根據所述新鏡像創建新容器運行。
6、可選的,所述通過部署在所述目標工作節點上的kubelet組件根據所述新鏡像創建新容器運行,包括:
7、通過部署在所述目標工作節點上的goldendb-daemonset組件調用所述目標容器的cri接口停止所述目標容器的運行;
8、通過部署在所述目標工作節點上的kubelet組件在監控到所述目標容器停止運行時,通過所述cri接口創建所述新容器運行。
9、可選的,在所述通過部署在主節點上的goldendb-controller組件接收用戶的升級請求之前,還包括:
10、通過部署在所述主節點上的goldendb-controller組件基于用戶請求創建有狀態集,以對各個數據庫組件進行部署及管理。
11、可選的,所述升級信息包括容器信息和版本信息。
12、可選的,所述根據所述升級信息拉取新鏡像到所述目標工作節點,包括:
13、根據所述升級信息創建對應的job以拉取所述新鏡像。
14、可選的,所述方法還包括:
15、配置所述分布式數據庫的升級策略為快速升級模式或普通升級模式,并在配置為快速升級模式下執行上述云原生分布式數據庫升級方法。
16、第二方面,本發明實施例還提供了一種云原生分布式數據庫升級裝置,所述分布式數據庫基于kubernetes所搭建的云環境進行部署,數據庫組件以容器方式部署,所述裝置包括:
17、升級請求接收模塊,用于通過部署在主節點上的goldendb-controller組件接收用戶的升級請求,并確定需要升級的目標容器所在的目標工作節點;
18、鏡像更新模塊,用于通過部署在所述目標工作節點上的goldendb-daemonset組件接收所述主節點下發的升級信息,以根據所述升級信息拉取新鏡像到所述目標工作節點,并基于所述新鏡像對所述目標容器對應的有狀態集中的容器鏡像信息進行更新;
19、新容器運行模塊,用于通過部署在所述目標工作節點上的kubelet組件根據所述新鏡像創建新容器運行。
20、第三方面,本發明實施例還提供了一種計算機設備,該計算機設備包括:
21、一個或多個處理器;
22、存儲器,用于存儲一個或多個程序;
23、當所述一個或多個程序被所述一個或多個處理器執行,使得所述一個或多個處理器實現本發明任意實施例所提供的云原生分布式數據庫升級方法。
24、第四方面,本發明實施例還提供了一種計算機可讀存儲介質,其上存儲有計算機程序,該程序被處理器執行時實現本發明任意實施例所提供的云原生分布式數據庫升級方法。
25、第五方面,本發明實施例還提供了一種計算機程序產品,該計算機程序產品包括計算機程序,該程序被處理器執行時實現本發明任意實施例所提供的云原生分布式數據庫升級方法。
26、本發明實施例提供了一種云原生分布式數據庫升級方法,所針對的分布式數據庫基于kubernetes所搭建的云環境進行部署,其中的各個數據庫組件以容器方式部署,首先由部署在主節點上的goldendb-controller組件接收用戶的升級請求,并確定需要升級的目標容器所在的目標工作節點,然后由部署在目標工作節點上的goldendb-daemonset組件接收主節點下發的升級信息,以根據該升級信息拉取新鏡像到目標工作節點,并基于新鏡像對目標容器對應的有狀態集中的容器鏡像信息進行更新,再通過部署在目標工作節點上的kubelet組件根據新鏡像創建新容器運行。本發明實施例所提供的云原生分布式數據庫升級方法,通過復用同一個容器對象,僅是修改對應狀態集中的字段,避免了調度及分配網絡資源等代價,同時在接收到升級信息時即提前拉取到新鏡像備用,極大的提高了數據庫組件的升級效率,實現了云平臺上分布式數據庫的快速升級,而且還可以實現在不影響數據庫業務組件正常服務狀態下,對監控、日志采集等周邊組件版本的升級。
1.一種云原生分布式數據庫升級方法,其特征在于,所述分布式數據庫基于kubernetes所搭建的云環境進行部署,數據庫組件以容器方式部署,所述方法包括:
2.根據權利要求1所述的云原生分布式數據庫升級方法,其特征在于,所述通過部署在所述目標工作節點上的kubelet組件根據所述新鏡像創建新容器運行,包括:
3.根據權利要求1所述的云原生分布式數據庫升級方法,其特征在于,在所述通過部署在主節點上的goldendb-controller組件接收用戶的升級請求之前,還包括:
4.根據權利要求1所述的云原生分布式數據庫升級方法,其特征在于,所述升級信息包括容器信息和版本信息。
5.根據權利要求1所述的云原生分布式數據庫升級方法,其特征在于,所述根據所述升級信息拉取新鏡像到所述目標工作節點,包括:
6.根據權利要求1-5任一所述的云原生分布式數據庫升級方法,其特征在于,所述方法還包括:
7.一種云原生分布式數據庫升級裝置,其特征在于,所述分布式數據庫基于kubernetes所搭建的云環境進行部署,數據庫組件以容器方式部署,所述裝置包括:
8.一種計算機設備,其特征在于,包括:
9.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,該程序被處理器執行時實現如權利要求1-6中任一所述的云原生分布式數據庫升級方法。
10.一種計算機程序產品,包括計算機程序,其特征在于,所述計算機程序在被處理器執行時實現如權利要求1-6中任一所述的云原生分布式數據庫升級方法。