[英]Ho do I implement Database per Service pattern in Kubernetes?
假設我想實現每個服務數據庫模式或其相關模式之一,如 Private-Tables-、Schema- 或 Database-server-per-service ( https://microservices.io/patterns/data/database-per-service .html ) 對於微服務:如果我想在 Kube.netes 中運行數據庫而不是使用外部數據庫或托管數據庫作為服務,我該如何解決這個問題 go?
我是否必須使用StatefulSet
在 Kube.netes 中部署數據庫,或者在某些情況下Deployment
是否足夠? 如果是這樣,在哪個?
假設一組微服務需要存儲關系數據的能力,例如,關系數據庫中的關系數據:如果我想實現 Database-server-per-service,微服務的每個Deployment
都應該為其數據庫擁有自己的StatefulSet
嗎? 或者我應該為任何微服務的所有Deployment
部署一個StatefulSet
並通過在該StatefulSet
中為每個微服務創建一個數據庫來進行邏輯分離?
這實際上取決於您的選擇和需求。
如果出現以下情況,您應該為單集群設置 go:
如果出現以下情況,您應該為多集群設置 go:
使用多集群方法,您可以根據每個數據庫的需要配置集群。 這將包括資源分配、網絡配置和安全配置。 例如,您可以為生產數據庫設置一個集群,為開發數據庫設置另一個集群。 您可以為需要高可用性、高安全性、容錯性的數據庫創建一個集群,為需要低可用性、低安全性、非容錯性的數據庫創建另一個集群。 當手頭有多個集群時,您現在可以更好地控制數據庫設置的設計和配置。
對於單個集群,您只能根據集群的需求而不是每個數據庫的特定需求來配置集群。
但是,不要只根據這個答案做出選擇。 您還應該考慮團隊的技術專長、應用程序的需求和預算。 99% 的情況下,單集群方法都非常適合您,但情況並非總是如此。
我希望這有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.