最近了解這個k8s在PVC存儲這兒卡了兩天,今天終于算是大概搞明白是個怎么回事了。
以下是該過程的總結:
創(chuàng)建由物理存儲支持的 PersistentVolume。你不會將卷與任何 Pod 關聯(lián)。
創(chuàng)建一個 PersistentVolumeClaim, 它將自動綁定到合適的 PersistentVolume。
創(chuàng)建一個使用 PersistentVolumeClaim 作為存儲的 deployment
https://kubernetes.io/zh/docs/tasks/configure-pod-container/configure-persistent-volume-storage/
原理圖

圖片.png
| 路徑 | 說明 |
|---|---|
/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
# 創(chuàng)建一個文件再去主機上 /mnt/data 查看是否存在即可
PV 創(chuàng)建
- 配置文件
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 創(chuàng)建
- 配置文件
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 創(chuàng)建
如需了解更多,請訪問: https://www.emperinter.info/2022/04/18/configure-persistent-volume-storage/