k8s-NFS系统配置

k8s-NFS系统配置

NFS(network filesystem),nfs文件系统在k8s中主要用于持久化存储,可以被多个pod访问和共享数据。

特点

  1. 数据持久性
    nfs为k8s的pod提供了一种持久化数据的方式,即使pod被删除,数据也不会丢失,这是因为数据存在nfs服务器上,并不是存在pod上。
  2. 资源共享
    nfs系统的文件可以用于多个pod共享相同的数据。

NFS服务端安装-master节点

以centos系统为例

bash 复制代码
# 安装nfs服务端
yum install nfs-utils -y 
# 创建共享目录
mkdir /nfs
# 配置nfs共享
vim /etc/exports
# 添加以下一行
/nfs *(rw,sync,no_root_squash) # 指明共享目录和权限设置
# 启动nfs服务,并设置开机启动
systemctl start nfs-server
systemctl enable nfs-server
# 查看nfs服务器状态
systemctl status nfs-server
# 启动rpcbind服务,设置开机启动
systemctl start rpcbind
systemctl enable rpcbind
# 查看rpcbind服务状态
systemctl status rpcbind
# 需要保证nfs服务器能够访问,关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

NFS客户端安装-work节点

以centos为例

bash 复制代码
yum install nfs-utils -y 
# 创建挂载点,挂载nfs共享
mkdir /mnt/nfs
mount -t nfs server_ip:/shared_directory /mnt/nfs
# 自动挂载
server_ip:/shared_directory /mnt/nfs nfs defaults 0 0

字段解释

bash 复制代码
/nfs *(rw,async,no_root_squash)
ro # 只读
rw # 读写
sync # 同步写入内存和硬盘
async # 异步,优先写入内存,之后写入硬盘
Secure # 请求源端口小于1024
# 用户权限
root_squash # nfs客户端使用root登录,映射到nfs服务器的匿名用户
no_root_squash # nfs客户端使用root登录,映射到nfs服务器的root用户
all_squash # 全部用户映射为nfs服务器的匿名用户
anonuid=UID # 将客户端用户映射为用户ui
anongid=GID # 将客户端用户映射为用户gi