You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

K8s本地PersistentVolume异常:本地文件未同步及存储位置疑问

本地PersistentVolume挂载异常问题排查

背景

在树莓派(RPi)上为K8s Pod配置本地PersistentVolume,期望复用节点上的/home/pi/data目录存储文件,但部署后出现异常,以下是完整配置与问题详情。

部署配置文件

文件1:StorageClass配置

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer

文件2:PersistentVolume配置

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv-volume
spec:
  storageClassName: local-storage
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteOnce
  local:
    path: “/home/pi/data”  # 注意此处使用了中文双引号
  nodeAffinity:
    required:
      nodeSelectorTerms:
        - matchExpressions:
            - key: kubernetes.io/hostname
              operator: In
              values:
                - pi

文件3:PersistentVolumeClaim配置

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pv-claim
spec:
  storageClassName: local-storage
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 3Gi

文件4:Deployment配置

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test-deployment
  labels:
    app: test
spec:
  replicas: 1
  selector:
    matchLabels:
      app: test
  template:
    metadata:
      labels:
        app: test
    spec:
      containers:
      - name: test
        image: [some_image]
        ports:
        - containerPort: 80
        volumeMounts:
        - name: pv-storage
          mountPath: "/mnt"
      volumes:
      - name: pv-storage
        persistentVolumeClaim:
          claimName: pv-claim 

异常现象与疑问

异常现象

  • RPi本地/home/pi/data目录中的test.txt文件未出现在Pod的/mnt目录中;
  • 在Pod的/mnt目录创建文件后,删除并重建Pod,文件仍存在,但RPi的/home/pi/data目录中无任何新增内容。

疑问

  1. 为何RPi本地的test.txt文件未同步到Pod的挂载目录?
  2. 既然持久化功能生效,那么文件实际存储在何处?

问题分析与解答

问题1:为何RPi本地的test.txt未同步到Pod挂载目录?

核心原因是PersistentVolume配置中的路径使用了中文双引号:在PV的local.path字段里,配置的是“/home/pi/data”(中文引号),而非英文双引号包裹的"/home/pi/data"。YAML会将包含中文引号的内容完整当作路径字符串,导致K8s尝试挂载的是一个名为“/home/pi/data”的错误路径(而非预期的/home/pi/data)。这个错误路径和你准备的目录完全无关,所以本地的test.txt不会同步到Pod的/mnt目录中。

问题2:文件实际存储在何处?

文件实际存储在树莓派节点上的错误路径目录中。你可以在RPi上执行以下命令查找该目录:

find / -type d -name "*home*pi*data"

执行后会找到一个包含中文引号的异常目录,你在Pod中创建的文件就存储在这个目录里。


内容的提问来源于stack exchange,提问作者Tricker Macedonia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 20:01:11