Using Local Path Provisioner
Using Local Path Provisioner
Overview
Local Path Provisioner, provides a way for the Kubernetes users to utilize the local storage in each node. It supports multi-node setups. This tutorial will show you how to setup local-path-prvisioner on two node minikube cluster.
Prerequisites
- Minikube version higher than v1.27.0
- kubectl
Tutorial
- Start a cluster with 2 nodes:
$ minikube start -n 2
- Enable
storage-provisioner-rancher
addon:
$ minikube addons enable storage-provisioner-rancher
- You should be able to see Pod in the
local-path-storage
namespace:
$ kubectl get pods -n local-path-storage
NAME READY STATUS RESTARTS AGE
local-path-provisioner-7f58b4649-hcbk9 1/1 Running 0 38s
- The
local-path
StorageClass should be marked asdefault
:
$ kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
local-path (default) rancher.io/local-path Delete WaitForFirstConsumer false 107s
standard k8s.io/minikube-hostpath Delete Immediate false 4m27s
- The following
yaml
creates PVC and Pod that creates file with content on second node (minikube-m02):
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: test-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 64Mi
---
apiVersion: v1
kind: Pod
metadata:
name: test-local-path
spec:
restartPolicy: OnFailure
nodeSelector:
"kubernetes.io/hostname": "minikube-m02"
containers:
- name: busybox
image: busybox:stable
command: ["sh", "-c", "echo 'local-path-provisioner' > /test/file1"]
volumeMounts:
- name: data
mountPath: /test
volumes:
- name: data
persistentVolumeClaim:
claimName: test-pvc
$ kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
test-pvc Bound pvc-f07e253b-fea7-433a-b0ac-1bcea3f77076 64Mi RWO local-path 5m19s
$ kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
test-local-path 0/1 Completed 0 5m19s 10.244.1.5 minikube-m02 <none> <none>
- On the second node we are able to see created file with content
local-path-provisioner
:
$ minikube ssh -n minikube-m02 "cat /opt/local-path-provisioner/pvc-f07e253b-fea7-433a-b0ac-1bcea3f77076_default_test-pvc/file1"
local-path-provisioner
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.
Last modified October 4, 2022: Add tutorial of using local-path-provisioner (0fb290e39)