本期敖行客研发实战日记,带你走进赛博缝合师的世界,解决K3s集群中状态应用数据持久化,那些配了三天还在报错的问题。

在 Kubernetes / K3s 容器编排集群中,Pod 会在不同的工作节点(Node)之间动态调度与漂移。为了保证有状态应用(如 MySQL、Redis、Wiki 等)在 Pod 重启或迁移后依然能访问到相同的持久化数据,我们需要一套网络文件系统(NFS)来提供跨机器的共享存储能力。

一、 NFS 服务端配置(Server 节点)

服务端作为数据的统一存储中心(假设当前服务端 IP 为 192.168.3.152)。

1.安装 NFS 核心组件

    使用 yum 安装 NFS 所需的管理工具:yum install nfs-utils -y

2.创建共享目录

    根据规划,批量创建好准备共享的本地物理目录。(注:原配置中缺少部分 mkdir,这里已补全,否则 exportfs 会报错或找不到路径):

    mkdir -p /data/ide-share

    mkdir -p /data/nfs-share

    ….(创建需要共享的目录)

3.编辑 /etc/exports 文件,加入以下配置,允许所有客户端(*)访问并赋予相应权限:

    /data/nfs-share *(insecure,rw,sync,no_root_squash)

    /data/ide-share *(insecure,rw,sync,no_root_squash)

    ….(其他创建的文件夹赋权)

💡 参数详解:

rw:可读可写。

sync:数据同步写入内存和磁盘,保证数据安全性,但写入性能稍低。

no_root_squash:K8s 环境关键参数。当客户端以 root 用户访问时,在服务端也映射为 root 权限。 如果设置成 root_squash,很多容器(如 MySQL/Redis 容器内是 root 启动)会因为没有权限修改底层目录而崩溃。

insecure:允许客户端从大于 1024 的高位端口连接 NFS 服务(某些容器内挂载需要此参数)。

4.启动服务与开机自启 让配置立即生效,并确保服务器重启后 NFS 服务自动运行:

重新加载 exports 配置文件(无需重启 nfs 服务,无损生效)

exportfs -ra

启动并设置开机自启

systemctl start nfs-server

systemctl enable nfs-server

🔒 补充:防火墙配置(若开启了 Firewalld 需执行) 如果服务器启用了防火墙,需要放行 nfs, rpc- bind 和 mountd 服务:

firewall-cmd --permanent --add-service=nfs

firewall-cmd --permanent --add-service=rpc-bind

firewall-cmd --permanent --add-service=mountd

firewall-cmd --reload

5.服务端验证

查看当前节点上已经暴露出去的共享目录:

showmount -e localhost

二、 NFS 客户端配置(K3s 所有 Node 节点)

不管是 Master 还是 Worker 节点,只要需要运行 Pod 的机器,都必须进行以下配置。

  1. 安装必备客户端组件

    yum install nfs-utils -y

  2. 创建本地挂载点(目标目录)

    在挂载前,客户端本地必须存在相同的目录架构:

    mkdir -p /data/nfs-share

    mkdir -p /data/ide-share

  3. 配置开机自动挂载(/etc/fstab)

    编辑客户端的 /etc/fstab 文件,在末尾追加以下挂载信息(保持服务端与客户端路径一致):

    192.168.3.152:/data/nfs-share /data/nfs-share nfs defaults 0 0

    192.168.3.152:/data/ide-share /data/ide-share nfs defaults 0 0

  4. 激活挂载

    #刷新 systemd 挂载树

    systemctl daemon-reload

    #挂载 fstab 中配置的所有设备

    mount -a

  5. 客户端验证

    使用磁盘查看命令,观察是否成功挂载了远端物理盘:

    df -h | grep nfs

敖行客介绍:

敖行客(Allthinker)聚焦服务企业研发团队及开发者,以搭载自研企业级智能体引擎的 AT Work-Agent 研发工作台为核心支撑,打造 AI 原生一体化研发协同体系,依托企业智能体重构研发协作范式,致力于赋能各类研发团队轻量化完成智能化升级。

AT Work介绍:

AT Work-Agent 研发工作台是国内首个分钟级部署、AI 原生全链路研发协同平台,依托企业级智能体赋能研发全流程,零门槛打造专属 AI 研发团队,实现研发效率与数据安全的双重飞跃。

官网:www.allthinker.com

邮箱:allthinker@allthinker.com

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐