使用 KubeBlocks 為 K8s 提供穩如老狗的資料庫服務

2023-08-22 15:04:19

原文連結:https://forum.laf.run/d/994

大家好!今天這篇文章主要向大家介紹 Sealos 的資料庫服務。在 Sealos 上資料庫後端服務由 KubeBlocks 提供,為使用者的資料庫應用保駕護航。無論你是在公有云還是本地環境中使用,Sealos 都能為你管理關聯式資料庫、NoSQL、向量資料庫和流資料庫等各種型別的資料庫。它專為生產環境而設計,提供可靠、高效能、可觀測且經濟高效的資料基礎設施。

讓我們來看看資料庫應用的魅力吧:

功能介紹

建立資料庫

Sealos 提供了一個簡單易用的資料庫前端應用,遮蔽了繁瑣的命令列操作。你只需通過 Database 應用就能輕鬆建立各種資料庫,包括 Mysql、PostgreSQL、MongoDB、Redis 等多種型別的資料庫。

連線使用

進入詳情頁面,你可以檢視資料庫的詳細資訊,並通過一鍵連線功能與資料庫進行互動。這讓操作變得更加便捷,讓你與資料庫之間的互動更加高效。

高可用測試

Sealos 在提供高可用服務方面表現出色,確保在關鍵時刻資料庫能夠正常工作,不會出現故障。這為你的資料提供了額外的保障,讓你放心使用。我們將通過一個小小的測試來驗證資料庫的高可用。

首先建立一個範例數大於 1 的資料庫應用,這裡我們建立一個 3 範例的 PostGreSQL:

建立完成後便可通過一鍵連線功能進入到資料庫命令終端:

我們點選 Add a Terminal 按鈕建立第二個終端應用。

同時我們檢視一下當前的主節點是哪個,發現是 test-postgresql-1

現在我們要刪除這個主節點,通過 kubectl delete pod test-postgresql-1 命令即可進行刪除操作:

備份恢復功能

我們的資料庫還提供了強大的備份恢復功能,這意味著即使出現資料丟失或損壞的情況,你也能輕鬆恢復到備份時的狀態。無論是資料誤刪,還是面臨災難情況,備份都能幫助你快速恢復資料庫,減少業務中斷的時間。

下面也通過範例具體測試一下,我提前準備了一些資料用來測試:

進入到備份列表點選「備份」按鈕進行備份操作:

這裡我們演示一下手動備份的功能,備份名和備註都可以進行修改,我們直接點選「開始備份」按鈕進行備份:

備份完成後通過狀態可以檢視備份的結果:

我們可以點選 「恢復」的圖示進行恢復功能,並且等待恢復的資料庫成功啟動:

進入到恢復的資料庫中進行資料檢視,可以發現資料成功的恢復出來:

監控功能

在 Sealos 中,你不僅能輕鬆管理資料庫,還能享受到使用者友好的監控功能。你可以隨時檢視資料庫的執行狀態,並通過圖表和指標監控資料庫的效能表現。

實現原理

看到這裡你可能會好奇 KubeBlocks 為何能在 Sealos 上提供穩定、高效的資料庫服務。讓我們一起深入瞭解它的實現原理並瞭解一下它的高可用架構以及備份恢復策略吧!

有狀態服務設計

KubeBlocks 以一種靈活的方式進行資料庫拓撲設計。它通過使用複製關係的 Replicated State Machine(RSM)作為核心元件,將複雜的分散式資料庫拆分成無縫連線的基礎元件(block)。無論是 Stateless、StatefulSet 還是 RSM,都可以輕鬆應用於 KubeBlocks 中。這意味著,你可以將任何資料庫引擎與 KubeBlocks 結合使用,構建出更加靈活的系統架構。

高可用架構設計

KubeBlocks 實現了兩種高可用演演算法:quorum-based 和經典主備。對於 quorum-based 類的資料庫,KubeBlocks 提供了角色探測、角色校正和重建等功能,而資料庫本身則負責更完整的探測、決策和切換等主體功能。對於經典主備場景,如 MySQL 和 PostgreSQL 主備,KubeBlocks 負責執行完整的探測、決策、切換、重建和角色校正等任務。此外,KubeBlocks 還採用通用的高可用架構,支援各種資料庫型別,例如複製叢集和分片叢集,通過增加副本數量來提高可靠性和可用性,降低資料丟失的概率。

備份恢復設計

為了進一步保護資料並防止丟失或損壞,KubeBlocks 提供了備份恢復策略。備份可以用於多種情況,例如資料丟失、災難恢復和資料遷移。在 Sealos 中,我們提供了物理備份功能,這意味著直接複製資料庫的物理檔案(包括資料檔案和紀錄檔檔案)到備份媒介(如磁碟或磁帶)上。物理備份具有快速恢復、資料一致性和空間效率的特點。它可以更高效地將備份檔案還原到原始資料庫,保持與資料庫的物理狀態完全一致,並且佔用較少的儲存空間。特別適用於大型資料庫的備份和恢復需求,進一步提升 Sealos 作為生產環境的能力。

如果你對資料庫服務感興趣,我強烈推薦你嘗試 Sealos 上的資料庫服務。無論你是開發者、資料工程師還是系統管理員,這個穩如老狗的資料庫服務都能幫助你更高效地管理和運維你的資料。讓 Sealos 成為你的得力助手,讓你的資料庫執行如飛!