K8s 集群 LocalPV 静态 PV 资源手动创建实操
操作环境
- K8s v1.28.15,Worker 节点 k8s-node01 已有目录 /mnt/localpv/vol01(200G ext4)
- StorageClass local-storage 已存在
对接原理
静态 PV 由管理员预先创建,绑定节点本地路径。PVC 通过 storageClassName 和容量匹配 PV,无需动态供给器。
详细步骤
1. 确认节点路径
ssh k8s-node01 "ls -la /mnt/localpv/vol01 && df -h /mnt/localpv/vol01"
2. 创建静态 PV
static-pv-021.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: static-local-pv-021
labels:
type: local
env: prod
spec:
capacity:
storage: 200Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: local-storage
local:
path: /mnt/localpv/vol01
nodeAffinity:
required:
nodeSelectorTerms: - matchExpressions:
- key: kubernetes.io/hostname
operator: In
values: - k8s-node01
kubectl apply -f static-pv-021.yaml
3. 创建匹配的 PVC
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: static-local-pvc-021
namespace: default
spec:
accessModes: "ReadWriteOnce"
resources:
requests:
storage: 200Gi
storageClassName: local-storage
volumeName: static-local-pv-021
验证流程
kubectl get pv static-local-pv-021
STATUS: Available → Bound
kubectl get pvc static-local-pvc-021
STATUS: Bound
排错方案
- PV 一直 Available:PVC 的 storageClassName、容量、accessModes 需完全匹配
- PVC Pending:检查 volumeName 是否正确,PV 是否被其他 PVC 绑定