配置 Pod 以使用 PersistentVolume 作为存储
最近了解这个k8s在PVC存储这儿卡了两天,今天终于算是大概搞明白是个怎么回事了。
以下是该过程的总结:
-
创建由物理存储支持的 PersistentVolume。你不会将卷与任何 Pod 关联。
-
创建一个 PersistentVolumeClaim, 它将自动绑定到合适的 PersistentVolume。
-
创建一个使用 PersistentVolumeClaim 作为存储的 deployment
-
https://kubernetes.io/zh/docs/tasks/configure-pod-container/configure-persistent-volume-storage/
原理图
路径 | 说明 |
---|---|
/mnt/data | 本地主机上的目录 |
/app/wiz | minikube容器里的路径 |
/wiz/storage/ | pod的路径 |
步骤
镜像拉取
- 这里以WIZ为测试,具体可以参考为知笔记docker私有化部署
docker pull wiznote/wizserver
minikube 挂载本地目录
- 启动挂载
minikube start --mount --mount-string="/mnt/data:/app/wiz"
- 验证
minikube ssh
cd /app/wiz
# 创建一个文件再去主机上 /mnt/data 查看是否存在即可
PV 创建
- 配置文件
wiz-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: wiz-pv-volume
labels:
type: local
spec:
storageClassName: manual
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/app/wiz"
- 部署
kubectl create -f wiz-pv.yaml
- 查看
kubectl get pv
- 删除
kubectl delete pv wiz-pv-volume
PVC 创建
- 配置文件
wiz-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: wiz-pv-claim
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 3Gi
- 部署
kubectl create -f wiz-pvc.yaml
- 查看
kubectl get pvc
- 删除
kubectl delete pvc wiz-pv-claim
deployment 创建
如需了解更多,请访问: https://www.emperinter.info/2022/04/18/configure-persistent-volume-storage/