K8s 集群 LocalPV 静态 PV 资源手动创建实操

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 绑定
相关推荐
一直在努力学习的菜鸟1 小时前
Rocky Linux 8.10 编译安装 PostgreSQL 17.11
linux·运维
三言老师1 小时前
K8s集群运行时自动化运维全覆盖落地实操(上)
docker·容器·kubernetes
Doraemomo1 小时前
Linux编程-进程的执行和退出
linux·运维·服务器
lengjingzju2 小时前
编译与调试完全指南—第5章 GDB调试详解
linux
艾伦_耶格宇2 小时前
【ELK】-5 kibana和filebeat
linux·运维·ubuntu·elk
复园电子2 小时前
USB服务器架构设计分析:多设备管理、权限控制与安全传输机制
运维·服务器·安全
DevHub2 小时前
电视盒子刷 Armbian 教程:30 元旧盒子变 NAS 跑 Docker,200+ 机型可刷
linux·嵌入式硬件·docker·容器·开源·电视盒子
三言老师2 小时前
K8s 集群 Ceph 节点磁盘分区规划配置实操
linux·运维·数据库
Doraemomo4 小时前
Linux编程-线程
linux·运维·服务器