Kubernetes进阶之PersistentVolume静态供给实现NFS网络存储

  

<强> 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.27 

Kubernetes进阶之PersistentVolume静态供给实现NFS网络存储