[minikube 文档中文翻译] 手册 - 离线使用

手册 - 持久卷

关于持久卷 (hostPath)

minikube 开箱即用地支持 hostPath 类型的 PersistentVolume - https://kubernetes.io/docs/concepts/storage/persistent-volumes/。这些 PersistentVolume 映射到正在运行的 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 下或单独的数据磁盘

这是一个示例 PersistentVolume 配置,用于将数据保存在 /data 目录中:

1
2
3
4
5
6
7
8
9
10
11
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 控制器 - https://github.com/kubernetes/minikube/blob/master/pkg/storage/storage_provisioner.go在 minikube 代码库中进行内部管理,展示了将自定义存储控制器作为系统的存储组件插入 kubernetes 是多么容易,并动态地为 pod 提供,以测试你的 pod 在持久存储时的行为映射到它。

请注意,这不是基于 CSI 的存储提供程序,而是当控制器发现有未完成的存储请求时,它只是动态声明类型为 hostpath 的 PersistentVolume 对象。


原文链接

Persistent Volumes | minikube - https://minikube.sigs.k8s.io/docs/handbook/persistent_volumes/