kubernetes - GKE PVC 与磁盘

标签 kubernetes google-kubernetes-engine persistent-volumes kubernetes-pvc

我的应用程序在 google kubernetes 引擎上运行,目前使用 pvc 进行数据存储。我只是无法决定我们应该使用 PVC 还是磁盘的存储选项?

在 PVC 的情况下,我们不能有快照,除此之外,我们有充分的理由选择基于磁盘的存储。什么是可取的?哪些场景我们应该考虑使用磁盘而不是pvc

最佳答案

您在这里混合了两个不同但相互关联的概念。持久卷声明和卷。

Persistent Volume Claim 不是存储设备/服务。它是需要存储特定特征的声明。在某种程度上,您可以说它等同于异步编程 promise 。它应该在某个时刻“返回”满足声明要求的持久卷形式的存储。你不知道它到底什么时候会(通常尽快)或者它是否会(错误)。

持久卷又是卷的实例,使用典型的卷定义(即 AWS EBS id、NFS 服务器详细信息、GlusterFS 等)进行定义和实例化。

Volume 是定义一些不属于图像/容器本身的存储的方式。

现在,有时您可能会将 PVC 与 PV/Volume 混淆的事实是,如果 PV 具有匹配的存储类(即默认,但不仅限于此),云提供商或第 3 方供应商可以自动创建 PV。

在大多数情况下,当您的 Pod 需要持久存储,但您希望声明与集群无关时,您将使用 PVC 并依赖于自动配置,或者以对给定基础设施可行的方式创建匹配的 PV。例如,您可以通过 hostPath 卷在开发集群上支持 PVC,但在生产环境中使用中央 GlusterFS 服务器。

也就是说,PVC 或磁盘这个问题没有任何意义,因为 PVC 实际上可以是磁盘。这更像是一个问题,例如“本地存储(hostPart 或 emptyDir)与网络存储(云 block 设备、文件服务器等)”。这个问题的答案是……“视情况而定”。

如果在 pod 重新调度时丢失存储数据不是问题,那么本地存储可能是一个好的和快速的解决方案(即,我会考虑将其用于缓存存储)如果不是......好吧,那么你不能使用本地存储.但这超出了问题的初始边界。

关于kubernetes - GKE PVC 与磁盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48931128/

相关文章:

kubernetes - dns-controller Kubernetes 部署尚未更新 Kubernetes 集群的 - AWS

ssl - 使用 Google Container Engine Ingress 确保 SSL 一直到 pod

java - Jenkins kubernetes 插件 : provided port:50000 is not reachable

postgresql - Kubernetes PostgreSQL : How do I store config files elsewhere than the data directory?

kubernetes - 副本之间的 Kubernetes 部署的共享目录

在 gRPC 服务前使用 Envoy 代理时出现 SSL 错误 ERR_CERT_AUTHORITY_INVALID

kubernetes - 谷歌 Kubernetes 引擎 : How to define one Ingress for multiple namespaces?

docker - 特权容器是否遵守CPU限制

azure - 如何配置手动预配的 Azure 托管磁盘以用作 Kubernetes 持久卷?