簡體   English   中英

如何為多租戶環境使用動態持久卷配置

[英]how to use dynamic persistent volume provisioning for multitenancy environment

我為我們的學生開發了一個 Web 應用程序,我現在想在 kubernetes 容器環境中運行它。 每個用戶(可以看作租戶)都有自己的應用環境(1:1 關系)。 應用程序環境由 2 個 pod(1x 網絡服務器,1x 數據庫)組成,由部署和服務定義。

我正在使用 kubernetes v1.17.2,我想使用動態 PersistentVolumeClaims 的功能以及在刪除和重新創建新 Pod 之間保留特定用戶(租戶)數據的可能性(例如更新到新的應用程序版本或硬件重啟后)。

我考慮在創建 pod 時使用環境變量(例如 user-1、user-2、user-x,...)並使用此信息來允許重用動態創建的 PersistentVolume。

是否有任何最佳實踐或概念如何實現?

最好的問候謝恩

您希望實現的結果將與您當前使用的解決方案密切相關。

在雲中配置的 Kubernetes 實例(例如 GKE)和本地 Kubernetes 實例(例如:kubeadm、kubespray)之間會有所不同。

關於保留用戶數據的可能性請參考官方文檔: Kubernetes.io: Persistent volumes reclaiming 它展示了一種在 pvc 中保留數據的方法。

請注意,本地靜態供應商不支持動態供應。

本地卷靜態配置器通過為主機上的每個本地磁盤檢測和創建 PV 並在釋放時清理磁盤來管理預分配磁盤的 PersistentVolume 生命周期。 它不支持動態配置。

Github.com:存儲本地靜態配置器

與此相反,VMware Vsphere 支持動態配置。 如果您正在使用此解決方案,請參閱此文檔

在您的問題中,您的環境中缺少對用戶的具體解釋。 它們是在您的應用程序內部還是外部? 應用程序是否對用戶進行身份驗證? 解決方案之一是通過服務帳戶在 Kubernetes 內部創建用戶,並將他們的視圖限制為專門為他們創建的命名空間。

服務賬戶創建請參考: Kubernetes.io:配置服務賬戶

此外,您還可以查看Statefulsets

暫無
暫無

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

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