<强> Kubernetes进阶之PersistentVolume静态供给实现NFS网络存储强>
<强>网络存储强>
NFS是一种很早的技术,单机的存储在服务器方面还是非常主流的,但NFS唯一的就是缺点比较大就是没有集群版,做集群化还是比较费劲的,文件系统做不了,这是一个很大的弊端,大规模的还是需要选择一些分布式的存储,NFS就是一个网络文件存储服务器,装完NFS之后,共享一个目录,其他的服务器就可以通过这个目录挂载到本地了,在本地写到这个目录的文件,就会同步到远程服务器上,实现一个共享存储的功能,一般都是做数据的共享存储,比如多台web服务器,肯定需要保证这些web服务器的数据一致性,那就会用到这个共享存储了,要是将NFS挂载到多台的web服务器上,网站根目录下,网站程序就放在NFS服务器上,这样的话。每个网站,每个web程序都能读取到这个目录,一致性的数据,这样的话就能保证多个节点,提供一致性的程序了。
单独拿一台服务器做nfs服务器,我们这里先搭建一台nfs服务器用来存储我们的网页根目录
<代码> [root@nfs ~] # yum安装nfs-utils - y 代码>
暴露目录,让是让其他服务器能挂载这个目录
<代码> [root@nfs ~] # mkdir/opt/美丽 # vim/etc/exports root@nfs ~ no_root_squash/opt/k8 192.168.30.0/24 (rw) 代码>
给这个网段加上权限,可读可写
<代码> [root@nfs ~] # systemctl启动nfs 代码>
找个节点去挂载测试一下,只要去共享这个目录就要都去安装这个客户端
<代码> root@k8s-node2 ~ # yum安装nfs-utils - y [root@k8s-node2 ~] nfs 192.168.30.27: # mount - t/opt/美丽/mnt root@k8s-node2 ~ # cd/mnt [root@k8s-node2 mnt] # df - h 192.168.30.27:/opt/美丽/mnt 36克5.8 g 30克17% [root@k8s-node2 mnt] #触摸a.txt 代码>
去服务器端查看已经数据共享过来了
<代码> [root@nfs ~] # cd/opt/美丽/[root@nfs k8] # ls a.txt 代码>
删除nfs服务器的数据也会删除
接下来怎么将k8进行使用
我们把网页目录都放在这个目录下
<代码> [root@nfs k8] # mkdir wwwroot # vim nfs.yaml root@k8s-master演示/v1beta1 apiVersion:应用程序 :部署 元数据: 名称:nfs 规范: 副本:3 模板: 元数据: 标签: 应用:nginx 规范: 容器: ——名称:nginx 图片:nginx volumeMounts: ——名称:wwwroot mountPath:/usr/share/nginx/html 港口: - containerPort: 80 卷: ——名称:wwwroot nfs: 服务器:192.168.30.27 路径:/opt/美丽/wwwroot 代码>
<代码> [root@k8s-master演示]# kubectl创建- f nfs.yaml 代码>
<代码> [root@k8s-master演示]# kubectl吊舱 重启名字就绪状态的年龄 mypod 1/1 0 6 h7m运行 mypod2 1/1 0 6 h nginx-5ddcc6cb74-lplxl 1/1 0 6 h53m运行 nginx部署- 744 d977b46 - 8 q97k 1/1运行0 48 nginx -部署- 744 d977b46 ftjfk 1/1运行0 48 nginx -部署- 744 d977b46 nksph 1/1运行0 48 web - 67 - fcf9bf8 mrlhd 1/1运行0 103 代码>
进入容器并查看挂载,确定挂载上
<代码> [root@k8s-master演示]# kubectl exec - nginx部署- 744 d977b46 - 8 q97k bash root@nginx部署- 744 d977b46 - 8 q97k:/# df - h 文件系统大小使用效果使用%安装alt=" Kubernetes进阶之PersistentVolume静态供给实现NFS网络存储”>
先创建一个容器应用<代码> root@k8s-master ~ # cd演示/[root@k8s-master演示]# mkdir存储 # cd存储/root@k8s-master演示 (root@k8s-master存储)# vim pod.yaml 代码><代码> apiVersion: v1 :豆荚 元数据: 名称:my-pod 规范: 容器: ——名称:nginx 图片:nginx:最新 港口: - containerPort: 80 volumeMounts: ——名称:www mountPath:/usr/share/nginx/html 卷: ——名称:www persistentVolumeClaim: claimName: my-pvc 代码>卷需求yaml,这里的名称一定要对应,一般两个文件都放在一块
<代码> # vim pvc.yaml root@k8s-master存储 apiVersion: v1 :PersistentVolumeClaim 元数据: 名称:my-pvc 规范: accessModes: ——ReadWriteMany 资源: 请求: 存储:5 gi 代码>接下来就是运维出场了,提前创建好pv
<代码> # vim pv.yaml root@k8s-master存储 apiVersion: v1 :PersistentVolume 元数据: 名称:zhaocheng 规范: 容量: 存储:5胃肠道 accessModes: ——ReadWriteMany nfs: 路径:/opt/美丽/zhaocheng 服务器:192.168.30.27Kubernetes进阶之PersistentVolume静态供给实现NFS网络存储