Kubernetes 將徹底改變企業資料庫管理? - thenewstack

banq發表於2021-10-22

Kubernetes 的有狀態能力經常受到質疑,而名為 Persistent Sets(“PetSet”)的第一代有狀態技術(部分)是罪魁禍首。此功能已被棄用,取而代之的是 Kubernetes 中當前的有狀態技術:StatefulSets。它於 2018 年針對 GA(“通用可用性”)釋出,如今已在無數解決方案中使用,為 Kubernetes 容器提供持久、非短暫的儲存。這就是使Vitess或其他雲原生資料庫在 Kubernetes 中部署成為可能的原因。

最值得注意的是,StatefulSets 將 PersistentVolumes(“PV”)掛載到容器中。這些 PV 通常由 Kubernetes 節點外部的儲存提供,可以是網路驅動器的形式,也可以是軟體定義的儲存解決方案,例如 OpenEBS。本質上,Kubernetes 和雲中使用的儲存與您在 AWS 上使用的 EBS 卷或您在 GCP 上使用的 Persistent Disks 相同;我們可以期待同樣的成熟度。

當然,Kubernetes 中的資料庫效能會受到影響,不是嗎?容器被錯誤地視為“輕量級虛擬機器”。它們是非常薄的抽象層,包含由 Linux 核心提供的檔案系統、程式和網路空間。如果您僅對資料使用臨時容器儲存,則可能會產生一些開銷。但是,如果您使用外部 PV 儲存,則開銷可以忽略不計。

那麼容器的短暫性會影響資料庫的高可用性嗎?由於容器只是一個程式的“包裝器”,它們的生命週期與程式的生命週期相關。換句話說,容器將與在其中執行的資料庫程式一樣穩定。

 

在 Kubernetes 上執行資料庫徹底改變了執行資料庫的方式

在 Kubernetes 上執行資料庫有明顯的優勢:部署簡單、整個堆疊由相同的編排工具管理、自動修復和自動重新配置失敗的容器,從而提高可用性。例如,如果執行資料庫的節點之一出現故障,Kubernetes 將自動自我修復,將工作負載重新排程到另一個節點上。通過與資料庫管理軟體的配合,它可以選擇一個執行在先前存在的副本上的新資料庫主節點,並將新節點重新初始化為新副本,所有這些都是自動的。但是,您希望在 Kubernetes 中執行資料庫還有其他更重要的原因。

大多數公司希望將資料庫作為 DBaaS(“資料庫即服務”)來執行。自我配置自我修復資料庫,包括備份和監控。雖然大多數雲提供商都提供了這一點,但使用 Kubernetes 自己動手可以節省大量成本,並提供額外的功能,例如多雲和雲可移植性。

這些功能通過Kubernetes Operators 提供。Operator 是 Kubernetes 的特定於應用程式的擴充套件,它對部署和操作自動化進行編碼,同時向使用者公開簡單的介面。

 

在 Kubernetes 上執行資料庫不僅是未來,也是現在,正如高盛ZalandoFlipkart等領先公司所展示的那樣。與任何技術一樣,在部署生產工作負載之前應該進行仔細和客觀的評估。

不出所料,2021 年 Kubernetes 資料包告發現,90% 的響應公司認為 Kubernetes 已為有狀態工作負載做好準備。這些組織中的大多數 (70%) 在生產中執行有狀態的工作負載,其中資料庫位居榜首。那些在其上執行 75% 或更多生產工作負載的公司報告說,生產力提高了 2 倍或更高!

 

相關文章