繁体   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