当前位置: 首页 > news >正文

Kubernetes(k8s) po 配置持久化挂载(nfs)

文章目录

  • 前言
    • k8s po 配置持久化挂载(nfs)
      • 1. 相关概念
        • 1.1. 用处
        • 1.2. 为什么需要持久化挂载?
        • 1.3. NFS 在 K8s 里的作用
        • 1.4. 架构图
      • 2. 配置思路
        • 2.1. 目录权限处理的几种方式
          • 2.1.1. 直接赋予 777
          • 2.1.2. 基于用户组 ID 配置
          • 2.1.3. 直接指定容器用户 ID
        • 2.2. 总结
      • 3. k8s 设置挂载
        • 3.1. 建立pv
        • 3.1. 建立pvc
        • 3.3. 快速验证
        • 3.4. po 配置加NFS挂载

前言

  如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
  而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!


k8s po 配置持久化挂载(nfs)

1. 相关概念

1.1. 用处

在 Kubernetes 中使用 NFS 网络文件系统 来做 持久化存储卷 (PersistentVolume, PV) 和 持久化存储声明 (PersistentVolumeClaim, PVC),从而让 Pod 的数据在重启或调度到其他节点时依然能保留。

1.2. 为什么需要持久化挂载?
  • Pod 本地存储是临时的:Pod 删除/重建时,容器里的数据会丢失。
  • 需要共享数据:多个 Pod 要访问同一份文件(日志、配置、上传文件等)。
  • 解耦计算和存储:应用无状态化,存储独立出来。
1.3. NFS 在 K8s 里的作用

NFS(Network File System)是一种 跨节点共享目录 的协议。
在 K8s 中,使用 NFS 相当于为集群里的所有节点提供了一个统一的共享目录:

  • 多个 Pod 可以同时挂载该目录,做到 数据共享;
  • Pod 重启或迁移后,数据依然 持久保存。
1.4. 架构图
 (K8s Pod ↔ PVC ↔ PV ↔ NFS 服务器)

2. 配置思路

部署细节此处略,可以参考官方文档或安装教程)
关键在于 NFS 共享目录权限 的处理。因为容器里的应用用户 ID 和宿主机用户 ID 可能不一致,容易导致没有写权限。

2.1. 目录权限处理的几种方式
2.1.1. 直接赋予 777

对要共享的目录(例如 /data/nfs/app)设置:

chmod -R 777 /data/nfs/app

优点:简单粗暴,保证任何容器都能读写。
缺点:权限过大,存在安全风险。

2.1.2. 基于用户组 ID 配置

查询需要挂载的 Pod 内部运行用户的 UID/GID,例如:

  • 用户 ID:10001
  • 用户组 ID:10000

那么可以在 NFS 服务器上配置目录权限:

chown -R root:10000 /data/nfs/app
chmod -R 775 /data/nfs/app

这样,同组用户就能创建和写入文件。

2.1.3. 直接指定容器用户 ID

如果明确知道 Pod 内部使用的用户 ID,可以直接把目录属主改成该用户:

chown -R 10001:10000 /data/nfs/app 
chmod -R 755 /data/nfs/app

这样,容器内用户就完全拥有该目录的权限,同时保证其他人只读。

2.2. 总结
  • NFS 是 K8s 常见的持久化存储方案,简单、通用。
  • 核心问题在于目录权限,需要根据实际容器用户来调整。

推荐:开发环境可以直接用 777;生产环境最好用 用户组 ID 或 指定 UID 的方式,既保证功能又更安全。

3. k8s 设置挂载

3.1. 建立pv

pv集群级,不需要指定命名空间:

apiVersion: v1          
kind: PersistentVolume
metadata:name: yzy-data
spec:accessModes:- ReadWriteMany    capacity:storage: 200Ginfs:path: /data/nfs/appserver: <NFS服务ip>persistentVolumeReclaimPolicy: DeletestorageClassName: nfs-storagevolumeMode: Filesystem
3.1. 建立pvc
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: yzy-datanamespace: <命名空间>
spec:accessModes:- ReadWriteManyresources:requests:storage: 200GistorageClassName: nfs-storagevolumeMode: FilesystemvolumeName: yzy-data   # 显式绑定上面建的 PV
3.3. 快速验证
# 1. 应用
kubectl apply -f pv.yaml
kubectl apply -f pvc.yaml# 2. 看状态
kubectl get pv yzy-data pvc/yzy-data -n <命名空间># 3. 若 PVC 一直 Pending
kubectl describe pvc yzy-data -n <命名空间>
3.4. po 配置加NFS挂载
  1. volumes —— 声明“盘从哪来”
  2. volumeMounts —— 声明“挂到容器哪”

示例:
在这里插入图片描述


文章转载自:

http://xiPNZfsS.tyxsn.cn
http://7v1hQVZ2.tyxsn.cn
http://Wm9Gvf5P.tyxsn.cn
http://sOuzwHPc.tyxsn.cn
http://FU3gxFab.tyxsn.cn
http://MeBFbjmP.tyxsn.cn
http://J1SlF4Nm.tyxsn.cn
http://a7kg82bf.tyxsn.cn
http://XtAstVCS.tyxsn.cn
http://qz8cis5Q.tyxsn.cn
http://SRxtEIYE.tyxsn.cn
http://30jSDiJo.tyxsn.cn
http://4eySnBNi.tyxsn.cn
http://1li4XMtu.tyxsn.cn
http://u3pHfmn1.tyxsn.cn
http://EME2Cm6s.tyxsn.cn
http://SOfkrikO.tyxsn.cn
http://8eQnYtQH.tyxsn.cn
http://T21vXjug.tyxsn.cn
http://S5hllEki.tyxsn.cn
http://5gDcs91Y.tyxsn.cn
http://jMIhlKIO.tyxsn.cn
http://DFbzg4cT.tyxsn.cn
http://lQK99PNv.tyxsn.cn
http://Zjesd6zp.tyxsn.cn
http://huXp0Vcy.tyxsn.cn
http://qIbdhBkp.tyxsn.cn
http://n41bdw3E.tyxsn.cn
http://qPvJ0rsg.tyxsn.cn
http://NWD0Lrt4.tyxsn.cn
http://www.dtcms.com/a/368932.html

相关文章:

  • 支持二次开发的代练App源码:订单管理、代练监控、安全护航功能齐全,一站式解决代练护航平台源码(PHP+ Uni-app)
  • proble1111
  • Ubuntu 24.04.2安装k8s 1.33.4 配置cilium
  • nextcyber——暴力破解
  • Process Explorer 学习笔记(第三章3.2.3):工具栏与参考功能
  • C++两个字符串的结合
  • c51串口通信原理及实操
  • Java垃圾回收算法详解:从原理到实践的完整指南
  • MongoDB 6.0 新特性解读:时间序列集合与加密查询
  • IAR借助在瑞萨RH850/U2A MCU MCAL支持,加速汽车软件开发
  • 状压 dp --- 棋盘覆盖问题
  • 机器学习周报十二
  • 力扣:2322. 从树中删除边的最小分数
  • 人工智能常见分类
  • C++ 音视频开发常见面试题及答案汇总
  • C/C++ Linux系统编程:线程控制详解,从线程创建到线程终止
  • swoole 中 Coroutine\WaitGroup 和channel区别和使用场景
  • HDFS架构核心
  • Python的语音配音软件,使用edge-tts进行文本转语音,支持多种声音选择和语速调节
  • 每周资讯 | 中国游戏市场将在2025年突破500亿美元;《恋与深空》收入突破50亿元
  • 别再手工缝合API了!开源LLMOps神器LMForge,让你像搭积木一样玩转AI智能体!
  • 问卷系统项目自动化测试
  • 事务管理的选择:为何 @Transactional 并非万能,TransactionTemplate 更值得信赖
  • React Fiber 风格任务调度库
  • Sentinel和Cluster,到底该怎么选?
  • 紧固卓越,智选固万基——五金及紧固件一站式采购新典范
  • android 四大组件—Activity源码详解
  • B树,B+树,B*树(无代码)
  • Redis到底什么,该怎么用
  • mysql中null值对in子查询的影响