如何在Linux中安装并配置Kubernetes存储卷 Linux挂载持久化存储的方法

星萱君_3047

星萱君_3047

2026-06-03

596人浏览

原创

linux 本身不安装 kubernetes 存储卷,pv/pvc 是集群级 api 对象,需在运行中的 k8s 集群内配置;所谓“linux 中安装”,实为准备底层存储(如目录、nfs、云盘)并确保节点可访问,所有 pv/pvc yaml 均提交给 kube-apiserver 管理。

如何在linux中安装并配置kubernetes存储卷 linux挂载持久化存储的方法

直接说结论:Linux 本身不“安装 Kubernetes 存储卷”,Kubernetes 存储卷(PV/PVC)是集群级抽象,必须在运行中的 k8s 集群内配置;所谓“Linux 中安装”,实际是指在 Linux 节点上准备底层存储介质,并在 k8s 中声明 PV。

为什么不能直接在 Linux 上“安装”PV?

PV(PersistentVolume)不是 Linux 软件包,也不是可执行二进制文件。它是 Kubernetes API 对象,由 kube-apiserver 管理、kubelet 在节点侧挂载。你在 Linux 上能做的只有两件事:提供物理/网络存储(如 /mnt/data 目录、NFS 服务、云盘设备),以及确保节点能访问它(比如装 nfs-utils、加载 iscsi_tcp 模块)。所有 YAML 定义(PersistentVolume、PersistentVolumeClaim)都提交给集群,不由 Linux 系统直接解析。

HostPath 类型 PV 在单节点集群(如 Minikube)怎么配?

这是最常被误当成“Linux 安装存储卷”的场景——其实只是用宿主机目录模拟 PV,仅限开发测试。

Kubernetes Network Policy Generator
Kubernetes Network Policy Generator

使用加权评分卡在12项标准上评估和比较隐私解决方案供应商。适用于选择隐私管理软件、比较数据保护方案等场景。

下载
  • 先在 Linux 节点上创建目录并写测试文件:sudo mkdir -p /mnt/data && echo "test" | sudo tee /mnt/data/index.html
  • 确认目录权限:确保 kubelet 进程(通常以 root 或 systemd 用户运行)有读写权,避免 Permission denied 错误
  • 定义 PV 时 spec.hostPath.path 必须是绝对路径,且 type: DirectoryOrCreate 比空字符串更安全(自动建目录,防 Pod 启动失败)
  • 注意 accessModes:HostPath 只支持 ReadWriteOnce,如果 PVC 写了 ReadWriteMany,会永远处于 Pending 状态

生产环境该用什么替代 HostPath?

HostPath 绑定具体节点,不可跨节点调度,也不支持高可用——生产中必须换掉。

  • NFS 是入门首选:部署一个 NFS 服务端(apt install nfs-kernel-server),导出目录,然后在 PV 中填 spec.nfs.server 和 spec.nfs.path;但要注意 NFS 服务器单点故障,且性能受网络抖动影响明显
  • 云厂商存储(如阿里云云盘):依赖 StorageClass + provisioner(如 alicloud/disk),PVC 提交后自动创建云盘并绑定 PV;关键参数是 reclaimPolicy:设为 Retain 才能在删 PVC 后保留数据,否则 Delete 会连云盘一起销毁
  • CSI 插件(如 Ceph CSI、Rook):需要额外部署控制器和节点插件,但提供真正的分布式持久化,支持快照、克隆、拓扑感知等高级功能;配置复杂,volumeHandle 和 nodeStageSecretRef 字段容易填错导致挂载失败

挂载失败常见原因和检查点

Pod 一直卡在 ContainerCreating,大概率是存储挂载环节出问题。

  • 看事件:kubectl describe pod <pod-name></pod-name>,重点找 Events 区域的 FailedMount 或 FailedAttachVolume
  • 查节点日志:journalctl -u kubelet -n 100 --no-pager | grep -i volume,常暴露 NFS 超时、认证失败、设备 busy 等底层错误
  • 确认插件就绪:运行 kubectl get csinodes 和 kubectl get pods -n kube-system | grep csi,缺失 CSI 控制器或节点驱动会导致 PVC 无法绑定
  • 注意 SELinux:CentOS/RHEL 默认开启,可能阻止 kubelet 挂载,临时关闭验证:setenforce 0;长期方案是打 SELinux 策略或改容器 securityContext

真正麻烦的从来不是写几行 YAML,而是搞清存储路径谁负责创建、权限归谁、网络通不通、插件版本对不对——这些细节不验清楚,PV 就只是个挂在 API server 里的空对象。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

kubernetes

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务

Golang云原生微服务Kubernetes (K8s) 是指 使用 Go 语言(Golang)编写的云原生微服务,并利用 Kubernetes 平台进行容器化部署、自动化管理、弹性伸缩和高效编排的一整套现代应用架构方案。

2025.12.22

116

5

Go云原生应用与Kubernetes服务部署实战
Go云原生应用与Kubernetes服务部署实战

本专题围绕 Go 语言在云原生环境中的应用展开,讲解容器化部署、Kubernetes 编排、服务发现、健康检查与弹性扩缩容机制。通过真实云端案例,帮助开发者构建可扩展的云原生微服务架构。

2026.06.29

188

19

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3950

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3393

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2533

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6150

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5782

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3393

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2885

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Kubernetes官方教程手册
Kubernetes官方教程手册

共0课时 | 0人学习

Kubernetes官方中文文档
Kubernetes官方中文文档

共0课时 | 0人学习