持久卷

关于持久卷 (hostPath)

minikube 开箱即用地支持 hostPath 类型的 PersistentVolumes。这些持久卷映射到正在运行的 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 驱动程序 插件,它支持动态配置,并支持多节点集群以及快照。