![](/img/trans.png)
[英]How should I deploy Persistent Volume(PV) for JupyterHub on Kubernetes?
[英]how to deploy multiple redis (none cluster) pod with different persistent volume in kubernetes
我將在多個 pod 中部署我的 golang 應用程序,另一方面部署多個 redis 節點,每個節點都有自己的持久卷,這意味着每個節點都有不同的數據,如下所示,你能告訴我我是怎么做的嗎可以用 Kube.netes 實現嗎? 我將為具有 3 個副本的 go 應用程序部署一個,因為它們是無狀態的,這部分很容易,但是對於 redis,我還將有另一個具有 3 個副本的部署,但是我應該如何讓 kuebe.netes 將每個 pod 連接到不同的 PV ?
---------- ----------
| Go-app | ----------- | Redis-1 |
---------- ----------
|__ PV-1
---------- ----------
| Go-app | ----------- | Redis-2 |
---------- ----------
|__ PV-2
---------- ----------
| Go-app | ----------- | Redis-3 |
---------- ----------
|__ PV-3
您可以安裝bitnami redis helm chart 以創建每個 redis pod 及其自己的持久性存儲。您可以在 helm chart 中配置所有屬性。 但在這種情況下,應用程序 pod 不會像圖中那樣映射到 redis。圖表安裝了一個狀態集 redis。您可以通過redis.namespace.svc.cluster.local
訪問 redis 節點。
一般來說,最好將應用程序部署和 redis 部署分開,以實現可擴展性和可用性。
但是,您的特定用例可以通過創建一個StatefulSet來實現,其中每個 pod 中都有兩個容器:
然后,您可以為 StatefulSet Yaml 中的每個 pod 指定持久卷。這里實現您的案例的概念是 Sidecar 模式,其中支持容器可以與主容器一起部署在同一個 pod 中。盡管建議創建僅包含一個容器的 pod . 如果需要高可用性和可擴展性,您應該將 redis 作為單獨的部署而不是 sidecar 運行。
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.