持久卷
关于持久卷(hostPath)
minikube开箱即用地支持hostPath
类型的持久卷(PersistentVolumes)。这些持久卷映射到正在运行的minikube实例(通常是VM,除非你使用--driver=none
、--driver=docker
或--driver=podman
)中的一个目录。有关其工作原理的更多信息,请阅读下面的“动态配置”部分。
关于挂载、持久化和minikube主机的一个说明
minikube配置为持久化存储在以下目录中的文件,这些目录是在Minikube VM中(或者如果你在裸机上运行,则在本地主机上)创建的。重新启动时可能会丢失其他目录中的数据。
/data
*/var/lib/minikube
/var/lib/docker
/var/lib/containerd
/var/lib/buildkit
/var/lib/containers
/tmp/hostpath_pv
*/tmp/hostpath-provisioner
*
* 另一个目录的挂载点,存储在/var
下或单独的数据磁盘上
这是一个在“/data”目录中持久化数据的持久卷配置示例
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv0001
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 5Gi
hostPath:
path: /data/pv0001/
你还可以通过在挂载的主机文件夹中创建PV来实现持久化。
动态配置和CSI
此外,minikube还实现了一个非常简单、规范的动态存储控制器,与它的部署并行运行。这管理着hostPath卷的配置(而不是通过以前的、in-tree的hostPath提供程序)。
默认的存储配置控制器(Storage Provisioner Controller)在minikube代码库内部进行管理,这表明将自定义存储控制器作为系统存储组件插入kubernetes并为Pod动态提供持久存储以测试Pod在映射到持久存储时的行为是多么容易。
请注意,这不是一个基于CSI的存储提供程序,它只是在控制器看到有未处理的存储请求时,动态声明一个hostpath类型的PersistentVolume对象。
还有一个CSI Hostpath驱动插件,它支持动态配置以及多节点集群和快照。