NFS数据卷持久化和动态供给

NFS数据卷

  • NFS数据卷提供对NFS挂载支持,可以自动将NFS共享路径挂载到pod中。
  • NFS数据卷

NFS 安装

每台node上都需要安装nfs-utils

[root@k8s-master ~]# yum install nfs-utils -y

[root@k8s-node2 kubernets]# vim /etc/exports	# 挂载的目录在node2节点上
/ifs/kubernetes *(rw,no_root_squash)    # /ifs/kubernetes:表示将本地目录共享出去。 *:表示所有IP可以访问,可以指定网段或单个IP地址。rw:表示对这个共享目录可读可写。 no_root_squash
:表示以root的模式进行工作
	
[root@k8s-node2 kubernets]# systemctl start nfs

[root@k8s-node2 kubernets]# systemctl enable nfs

[root@k8s-node2 ~]# mkdir /ifs/kubernetes -p

[root@k8s-node2 kubernetes]# touch a

[root@k8s-node1 ~]# mount -t nfs 192.168.153.182:/ifs/kubernetes /mnt	#测试挂载

[root@k8s-node1 ~]# cd /mnt/

[root@k8s-node1 mnt]# ls		# 查看到mnt目录下有a文件,说明挂载成功

[root@k8s-node1 ~]# umount /mnt/	# 卸载挂载

NFS 案例

创建NFS.yaml

将网站程序通过NFS数据卷挂载,实现所有pod都能使用
在这里插入图片描述

[root@k8s-master ~]# kubectl create deployment web --image=nginx --dry-run=client -o yaml > NFS.yaml

[root@k8s-master ~]# vim NFS.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: ce
  name: web
spec:
  replicas: 3
  selector:
    matchLabels:
      app: ce
  template:
    metadata:
      labels:
        app: ce
    spec:
      containers:
      - image: nginx
        name: nginx
        volumeMounts:
        - name: release
          mountPath: /usr/share/nginx/html
      volumes:
      - name: release
        nfs:
          server: 192.168.153.182
          path: /ifs/kubernetes
          
[root@k8s-master ~]# kubectl apply -f NFS.yaml

验证NFS挂载是否成功

验证容器和NFS间是否互通

[root@k8s-master ~]# kubectl exec -it web-5c4d9759-4lpg2 -- bash

root@web-5c4d9759-4lpg2:~# ls /usr/share/nginx/html/	#NFS挂载目录下存在的a文件在容器中也存在
a

root@web-5c4d9759-4lpg2:/usr/share/nginx/html# touch b.txt

root@web-5c4d9759-4lpg2:/usr/share/nginx/html# ls
a  b.txt

root@web-5c4d9759-4lpg2:/usr/share/nginx/html# exit

[root@k8s-master ~]# kubectl exec -it web-5c4d9759-b9lch -- bash	#换另一个副本进入容器中查看有没有a和b.txt文件

root@web-5c4d9759-b9lch:/# ls /usr/share/nginx/html/
a  b.txt

[root@k8s-node2 kubernetes]# ls	# 到node2节点上查看NFS挂载目录下创建的b.txt文件是否存在
a  b.txt

[root@k8s-node2 kubernetes]# echo "<h1>Hello 长城</h1>" >> index.html  

[root@k8s-master ~]# kubectl get pod -o wide
NAME                   READY   STATUS    RESTARTS             AGE     IP               NODE        NOMINATED NODE   READINESS GATES
feng                   1/1     Running   1 (<invalid> ago)    2d20h   10.244.169.162   k8s-node2   <none>           <none>
test                   2/2     Running   2 (<invalid> ago)    3d      10.244.36.9
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值