网站首页 > 技术教程 正文
nfs的工作原理
它的原理比较简单,在服务端创建目录A,然后在客户机上创建一个目录B,最后用A来挂载B,那么客户端再打开本地的B目录就相当于打开A目录,这样就实现了共享。对于服务端来说,就像是开了一个服务器,拓扑图如下:
nfs的好处在于它是通过网络协议通信的,可以远程访问。
hostPath模式和NFS模式的对比
上一篇讲到hostPath,它也有缺点,就是绑定了机器,比如说Pod换个机器运行时,说不定就没有绑定的那个目录或文件了,可以认为是节点级别的,而NFS是统一的服务端,大家都可以从这个端挂载目录,就像我们都可以打开百度网页一样,属于集群级别的,因此区别一目了然,在实际工作中需要哪种模式可以看场景。
下面写下NFS安装和具体操作。
安装NFS
(1)在每台机器上都安装nfs-utils
yum install -y nfs-utils nfs-utils包括客户端和服务端的工具软件。
(2)挑选一台机器充当服务端(我这里选择k8s的master节点),在上面执行命令
# 在master 执行以下命令  
echo "/nfs/data/ *(insecure,rw,sync,no_root_squash)" > /etc/exports
# 执行以下命令,启动 nfs 服务;创建共享目录
mkdir -p /nfs/data
# 在master执行
systemctl enable rpcbind
systemctl enable nfs-server
systemctl start rpcbind
systemctl start nfs-server
# 使配置生效
exportfs -r
#检查配置是否生效
exportfs(3)在客户机上执行下面命令
#查看master的挂载目录
showmount -e 192.168.234.100
#创建本地目录
mkdir -p /nfs/data
#映射master的目录
mount -t nfs \
192.168.234.100:/nfs/data /nfs/data经过上面几步,就将服务端和客户端配置完成了。
实验:nginx映射NFS上的目录
需求:
我有一个nginx的Pod,想把它的主页目录映射到NFS的目录上,那么我这个nginx无论调度到哪台机器上,都可以从NFS中读取主页。
实验拓扑图
/nfs/data/nginx-pv是共享的NFS目录,/usr/share/nginx/html是Nginx默认网页的根目录,用/nfs/data/nginx-pv来挂载/usr/share/nginx/html,这样就可以从NFS中读取主页了。
实验准备:nfs上创建一个主页目录用于挂载
#创建用于nginx映射的目录
mkdir -p /nfs/data/nginx-pv
#在此目录中创建一个index.html文件用于观察结果
vim index.html
<h2>hello nginx!!!</h2>实验准备:编写Pod部署文件并执行
#配置文件名:nginx-deploy-nfs-test.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: nginx-pv-demo
  name: nginx-pv-demo
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx-pv-demo
  template:
    metadata:
      labels:
        app: nginx-pv-demo
    spec:
      containers:
      - image: nginx
        name: nginx
        ports:
        - containerPort: 80
        volumeMounts:
        - name: html  # 卷挂载名称,与下面 volumes 对应
          mountPath: /usr/share/nginx/html  # Nginx 默认网页根目录
      volumes:
      - name: html  # 卷名称
        nfs:
          server: 192.168.234.100  # NFS 服务器 IP
          path: /nfs/data/nginx-pv  # NFS 共享目录路径
          readOnly: false  # 可读写(默认)k8s执行部署
kubectl apply -f nginx-deploy-nfs-test.yml实验观察
(1)查看Pod地址
kubectl get pods -o wide
#可以看到两个Pod的地址:
10.244.36.112
10.244.36.107(2)执行curl
curl 10.244.36.112
#看到正确的结果:
<h2>hello nginx!!!</h2>实验结束的清理工作
#删除deploy
kubectl delete deploy nginx-pv-demo
#删除部署文件
rm -rf nginx-deploy-nfs-test.yml总结
NFS采用统一的服务端模式,无论Pod移动到哪里,只要NFS是通的那么就可以共享目录。
猜你喜欢
- 2025-09-01 使用再生龙做Linux系统备份和还原
- 2025-09-01 Kubernetes问题排查|POD启动失败_kubectl启动pod
- 2025-09-01 windows11安装wsl配置目录挂载 驱动NVIDIA 安装DockerDesktop
- 2025-09-01 Milvus 实战 | 基于 Kubernetes 的分布式集群部署方案
- 2025-09-01 NFS-Ganesha内核窥探_ie内核浏览器
- 2025-09-01 OpenWrt 安装配置 Samba 实现网络文件共享
- 2025-09-01 Linux下通过AnySetup配置防火墙_linux系统防火墙怎么关闭
- 2025-09-01 阿里云国际站DBFS:阿里云DBFS如何快速部署和管理数据库文件?
- 2025-09-01 uv安装python及其依赖的加速方法_uvtools安装
- 2025-09-01 windows server 2025中挂载NFS存储
欢迎 你 发表评论:
- 10-23Excel计算工龄和年份之差_excel算工龄的公式year
- 10-23Excel YEARFRAC函数:时间的"年份比例尺"详解
- 10-23最常用的10个Excel函数,中文解读,动图演示,易学易用
- 10-23EXCEL中如何计算截止到今日(两个时间中)的时间
- 10-2390%人不知道的Excel神技:DATEDIF 精准计算年龄,告别手动算错!
- 10-23计算工龄及工龄工资(90%的人搞错了):DATE、DATEDIF组合应用
- 10-23Excel中如何计算工作日天数?用这两个函数轻松计算,附新年日历
- 10-23怎样快速提取单元格中的出生日期?用「Ctrl+E」批量搞定
- 最近发表
- 
- Excel计算工龄和年份之差_excel算工龄的公式year
- Excel YEARFRAC函数:时间的"年份比例尺"详解
- 最常用的10个Excel函数,中文解读,动图演示,易学易用
- EXCEL中如何计算截止到今日(两个时间中)的时间
- 90%人不知道的Excel神技:DATEDIF 精准计算年龄,告别手动算错!
- 计算工龄及工龄工资(90%的人搞错了):DATE、DATEDIF组合应用
- Excel中如何计算工作日天数?用这两个函数轻松计算,附新年日历
- 怎样快速提取单元格中的出生日期?用「Ctrl+E」批量搞定
- Excel日期函数之DATEDIF函数_excel函数datedif在哪里
- Excel函数-DATEDIF求司龄_exceldatedif函数计算年龄
 
- 标签列表
- 
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
 

本文暂时没有评论,来添加一个吧(●'◡'●)