持久卷

关于持久卷 (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 驱动程序 插件,它支持动态配置,并支持多节点集群以及快照。