首页 > 解决方案 > PV文件未保存在主机上

问题描述

大家好,关于持久卷的主机路径的所有快速问题

我在这里创建了一个 PV 和 PVC

apiVersion: v1
kind: PersistentVolume
metadata:
  name: task-pv-volume
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/data"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: task-pv-claim
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 3Gi

我运行了一个示例 pod

apiVersion: v1
kind: Pod
metadata:
  name: task-pv-pod
spec:
  volumes:
    - name: task-pv-storage
      persistentVolumeClaim:
        claimName: task-pv-claim
  containers:
    - name: task-pv-container
      image: nginx
      ports:
        - containerPort: 80
          name: "http-server"
      volumeMounts:
        - mountPath: "/usr/share/nginx/html"
          name: task-pv-storage

我执行 pod 并创建了一个文件

root@task-pv-pod:/# cd /usr/share/nginx/html
root@task-pv-pod:/usr/share/nginx/html# ls
tst.txt

但是,当我回到我的主机并尝试 ls 文件时,它没有出现。知道为什么吗?我的 PV 和 PVC 是正确的,因为我可以看到它是有界的。

ubuntu@ip-172-31-24-21:/home$ cd /mnt/data
ubuntu@ip-172-31-24-21:/mnt/data$ ls -lrt
total 0

标签: kubernetes

解决方案


持久卷 (PV) 是一种 kubernetes 资源,它有自己的生命周期,独立于 pod pv 文档。使用 PVC 从 PV 消费可以使其在其他工具中可见。例如 azure 文件、ELB、带有 NFS 的服务器等。我的观点是,节点中没有任何理由应该存在 PV。

如果您希望将持久性保存在节点中,请使用hostPathPV 选项。检查此链接。虽然这不是一个好的生产实践。


推荐阅读