持久卷

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