在Kubernetes单机版环境中,我们经常使用本机路径作为持久化存储。在Kubernetes官方文档中有两种方式使用本机存储,一种是hostPath,另一种是local volume,这两种都不支持动态扩容,并且程序移植改动比较大。而Local-Path-Provisioner很好的弥补了这一缺陷。
Local-Path-Provisioner是一个用于在Kubernetes中配置本地存储的Provisioner。它支持动态供给和动态扩容,能够很好地满足Kubernetes单机版环境中对本地存储的需求。
Local-Path-Provisioner常见的有两个仓库,一个是Rancher版的,另一个是Kubernetes-SIGs版的。其中,Kubernetes-SIGs版不支持动态扩容/动态供给,所以建议使用Rancher版。
下面介绍如何安装和使用Local-Path-Provisioner:
安装:
- 首先,你需要安装Kubernetes单机版环境。确保你的环境已经安装并正常运行。
- 使用kubectl命令行工具来安装Local-Path-Provisioner。执行以下命令来应用Local-Path-Provisioner的配置文件:
kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/deploy/local-path-storage.yaml
使用: - 创建StorageClass资源:使用kubectl命令行工具创建一个StorageClass资源,用于声明你要使用的存储类型。以下是一个示例StorageClass资源的配置文件:
kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/examples/sc/sc.yaml - 创建Persistent Volume Claim(PVC):创建一个PVC来请求存储资源。以下是一个示例PVC的配置文件:
kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/examples/pvc/pvc.yaml - 创建Pod:创建一个Pod来使用PVC请求的存储资源。以下是一个示例Pod的配置文件:
kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/examples/pod/pod.yaml
默认情况下,Local-Path-Provisioner将安装在local-path-storage命名空间中。但实际上,sc是不区分命名空间的,因此PVC可以在任何命名空间中申请空间。这里仍然使用之前部署MySQL作为例子进行讲解。
注意:在使用Local-Path-Provisioner之前,确保你的Kubernetes单机版环境已经正确安装和配置。此外,由于Local-Path-Provisioner依赖于本地文件系统,因此在使用之前需要确保目标节点上有足够的可用空间和适当的文件系统权限。
总结:在Kubernetes单机版环境中,使用Local-Path-Provisioner可以方便地配置和管理本地存储资源。通过简单的命令行操作,你可以快速创建和管理存储资源,满足应用程序对持久化存储的需求。需要注意的是,在使用Local-Path-Provisioner之前,确保已经正确安装和配置了Kubernetes单机版环境,并了解目标节点上的可用空间和文件系统权限情况。