使用本地路径供应器
使用本地路径供应器
概述
本地路径供应器为 Kubernetes 用户提供了一种利用每个节点本地存储的方法。它支持多节点设置。本教程将向您展示如何在双节点 minikube 集群上设置 local-path-prvisioner。
先决条件
- Minikube 版本高于 v1.27.0
- kubectl
教程
- 启动一个具有 2 个节点的集群
$ minikube start -n 2
- 启用
storage-provisioner-rancher
插件
$ minikube addons enable storage-provisioner-rancher
- 您应该能够看到
local-path-storage
命名空间中的 Pod
$ kubectl get pods -n local-path-storage
NAME READY STATUS RESTARTS AGE
local-path-provisioner-7f58b4649-hcbk9 1/1 Running 0 38s
local-path
StorageClass 应该被标记为default
$ 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
- 以下
yaml
创建 PVC 和 Pod,在第二个节点 (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>
- 在第二个节点上,我们可以看到创建的包含内容
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