我学习k8s,我有一个小问题要理解PV。
例如,我想在/var/lib/postgresql/data中部署存储数据的PostgreSQL,我想使用本地磁盘进行PV,所以我创建了它并设置了path:/mnt/ssd/Kubernetes/Postgres
我不明白PV和PVC将如何存储我的数据,因为我用pod1创建了PostgreSQL,创建了新的DB并杀死了这个pod1。新pod2仍然有数据库,这是我第二次在pod1上创建的,但是在pod2中的本地磁盘上,我没有任何文件,所以
发布于 2020-09-30 14:30:56
为了更好地理解库伯内特斯的卷、持久卷和索赔是如何工作的,我强烈建议查阅有关以下方面的正式文档:
容器中的磁盘文件是短暂的,这给在容器中运行的应用程序带来了一些问题。首先,当容器崩溃时,kubelet将重新启动它,但是文件将丢失-容器以干净状态开始。其次,在Pod中一起运行容器时,通常需要在这些容器之间共享文件。Kubernetes
Volume
抽象解决了这两个问题。
PersistentVolume
(PV)是集群中由管理员提供或使用存储类动态配置的存储部分。它是集群中的资源,就像节点是集群资源一样。PVs是像Volumes
这样的卷插件,但是它的生命周期与使用PV的任何单个Pod无关。这个API对象捕获存储实现的详细信息,无论是NFS、iSCSI还是特定于云提供商的存储系统。
是用户对存储的请求。它类似于一只水壶。豆荚消耗节点资源,PVCs消耗PV资源。豆荚可以请求特定级别的资源(CPU和内存)。声明可以请求特定的大小和访问模式(例如,它们可以挂载
ReadWriteOnce
、ReadOnlyMany
或ReadWriteMany
,参见AccessModes)。
在对它们的工作原理有了坚实的理论掌握之后,您可以看到详细演练和工作示例。
而且,您的PostgreSQL是有状态应用程序的一个示例。这里您可以找到一个教程,向您展示如何使用持久卷部署数据库和应用程序。
https://stackoverflow.com/questions/64126864
复制相似问题