Kubernetes-Storage-PV-PVC
本文最后更新于 2025年1月27日 下午
常见存储机制
在Docker和Kubernetes的相关技术领域,常见的存储方案包含以下方面:
Docker本地存储:
1 |
|
Kubernetes 本地存储
PV和PVC:
emptyDir:
emptyDir类型的Volume在Pod分配到Node上时被创建,Kubernetes会在Node上自动分配一个目录,因此无需指定宿主机Node上对应的目录文件。 这个目录的初始内容为空,当Pod从Node上移除时,emptyDir中的数据会被永久删除。
应用场景:
- 临时空间,例如基于磁盘的合并排序
- 设置检查点以从崩溃事件中恢复未执行完毕的长计算
- 保存内容管理器容器从Web服务器容器提供数据时所获取的文件,比如和其他容器共享文件,例如临时日志等
1 |
|
hostPath:
hostPath类型则是映射node文件系统中的文件或者目录到pod里。在使用hostPath类型的存储卷时,也可以设置type字段,支持的类型有文件、目录、File、Socket、CharDevice和BlockDevice。
使用场景:
- 只能针对特定宿主机起作用,夸宿主机就会出现文件不一致的问题,可以通过
pod.spec.nodeName
来指定运行的宿主机
注意事项:
- 配置相同的pod(如通过podTemplate创建),可能在不同的Node上表现不同,因为不同节点上映射的文件内容不同
- 当Kubernetes增加了资源敏感的调度程序,hostPath使用的资源不会被计算在内
- 宿主机下创建的目录只有root有写权限。你需要让你的程序运行在privileged container上,或者修改宿主机上的文件权限。
1 |
|
网络共享存储:
Kubernetes-Storage-PV-PVC
https://msfts.org/2024/08/07/Kubernetes-storage-PV-PVC/