簡體   English   中英

如何部署對 Kube.netes 有 MongoDB 依賴的微服務?

[英]How to deploy Microservices with MongoDB dependency on Kubernetes?

我有 2 個 API 后端微服務,其中每個微服務都有 MongoDB 數據庫。 我想在雲提供商(例如 AWS)上的 Kube.netes 集群中部署每個實例的 2 個或更多實例。

微服務的每個實例都作為 Pod 中的容器運行。 是否可以將 MongoDB 作為另一個容器部署在同一個 Pod 中? 或者這個用例的最佳實踐是什么?

如果同一個微服務的兩個或多個實例在不同的 Pod 中運行,我是否需要部署 2 個或更多 MongoDB 實例,或者單個 MongoDb 被同一個微服務的多個實例引用? 這個用例的最佳實踐是什么?

每個微服務都是 Spring 啟動應用。 我是否需要在 Spring Boot 應用程序源代碼中做任何特殊的事情,因為它將作為微服務運行,而不是傳統的 Spring Boot 應用程序?

微服務的每個實例都作為 Pod 中的容器運行。 是否可以將 MongoDB 作為另一個容器部署在同一個 Pod 中?

不,那么當您升級應用程序時,您的數據就會消失。

或者這個用例的最佳實踐是什么?

出於可用性原因,現代生產環境中的數據庫作為集群運行。 最好的做法是為數據庫使用托管服務或將其作為集群運行,例如在不同節點上有 3 個實例。

如果同一個微服務的兩個或多個實例在不同的 Pod 中運行,我是否需要部署 2 個或更多 MongoDB 實例,或者單個 MongoDb 被同一個微服務的多個實例引用?

您所有的微服務實例都應該訪問同一個數據庫集群,否則它們會看到不同的數據。

每個微服務都是 Spring 啟動應用。 我是否需要在 Spring Boot 應用程序源代碼中做任何特殊的事情,因為它將作為微服務運行,而不是傳統的 Spring Boot 應用程序?

Spring Boot 是根據The Twelve Factor App設計的,因此被設計為在雲環境中運行,例如 Kube.netes。

將 mongodb pod 部署為有狀態集。 參考下面的 helm chart 部署 mongodb. https://github.com/bitnami/charts/tree/master/bitnami/mongodb

使用 init 容器,您可以檢查 springboot pod 內部以檢查 mongodb 是否已啟動並正在運行,然后啟動 springboot 容器。 請點擊以下鏈接獲取幫助我們如何使用 kube.netes 創建服務依賴項

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM