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