k8s PV使用NFS实现读取远程host文件

一、服务器资源

资源名称IP
NFS server47.97.112.208

k8s master node

192.168.132.64
k8s cluster node192.168.132.63

 二、安装NFS服务端

centos下NFS的安装和使用_FinelyYang的专栏-CSDN博客一.概述 网络文件系统,英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议(presentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。通过 NFS,我们本地 NFS 的客户端应用可以透明地读写位于服务端 NFS 服务器上的文件,就像访问本地文件一样方便。简单的理解,NFS 就是可以透过网络,让不同的主机、不同的操作系统可以共享存储的服务。二.需要的资源资源IP服务器端47..https://blog.csdn.net/xiaoxiangzi520/article/details/121469340?spm=1001.2014.3001.5501三、k8s主从节点分别安装

192.168.132.64,192.168.132.63均执行:

yum install nfs-utils rpcbind -y

验证nfs是否可用:

 四、nfs结合pv、pvc使用

PersistentVolumes,是k8s抽象化的存储资源,主要包括存储能力、访问模式、存储类型、回收策略等关键信息.PV是k8s实际对接存储后端的真正入口。

kubernetes使用NFS共享存储有两种方式:

#手动方式静态创建所需要的PV和PVC;

#通过创建PVC动态地创建对应PV,无需手动创建PV。

k8s共享存储之nfs_nfs方式_02

我这里使用第一种方式。 

1.创建PV 

vim pv.yaml

apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfspv1
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Recycle
  nfs:
    path: /home/ydxc
    server: 47.97.112.208

配置说明:

① capacity 指定 PV 的容量为 1G。

② accessModes 指定访问模式为 ReadWriteOnce,支持的访问模式有:

ReadWriteOnce(RWO):读写权限,但是只能被单个节点挂载;

ReadOnlyMany(ROX):只读权限,可以被多个节点挂载;

ReadWriteMany(RWX):读写权限,可以被多个节点挂载;

③ persistentVolumeReclaimPolicy 指定当 PV 的回收策略为 Recycle,支持的策略有:

Retain(保留)- 保留数据,不会再分配给pvc,需要管理员手工清理数据;

Recycle(回收)- 清除 PV 中的数据,保留pv资源,可以留供其他pvc使用;

Delete(删除)- 删除整个pv资源及内部的数据;

④ storageClassName 指定 PV 的 class 为 nfs。相当于为 PV 设置了一个分类,PVC 可以指定 class 申请相应 class 的 PV。

⑤ 指定 PV 在 NFS 服务器上对应的目录。

kubectl apply -f pv.yaml 

2.创建PVC,通过挂载PVC使用PV 

vim pvc.yaml

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc1
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
kubectl apply -f pvc.yaml 

 

 3.打包springboot项目为镜像

将镜像上传到dockerHub,方法:

如何上传镜像到dockerhub_ximenghappy的专栏-CSDN博客先申请Docker hub 帐号 ,并创建仓库首先申请一个docker hub 帐号,登录到dockehub点击一下按钮:create —> create repository ,取个名字,这里我们最终创建的仓库名称:lidnyun/kube-apiserver-amd64 ,这个lidnyun是帐号,kube-apiserver-amd64是其中一个仓库名。 如图所示: 为镜像打标签为存在于https://blog.csdn.net/ximenghappy/article/details/66971035?utm_source=debugrun&utm_medium=referral4.创建应用Service、Deployment

vim ydxc.yaml

apiVersion: v1
kind: Service
metadata:
  name: ydxc-service
spec:
  type: NodePort
  ports:
      - port: 8080
        nodePort: 30010
  selector:
    app: ydxc
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: ydxc-web
spec:
    replicas: 3
    template:
        metadata:
            labels:
               app: ydxc
        spec:
          containers:
          - name: ydxc
            image: finley23/ydxcds:v1.0
            ports:
            - containerPort: 8080
            volumeMounts:
            - name: pv1
              mountPath: /home/ydxc
          volumes:
          - name: pv1
            persistentVolumeClaim:
               claimName: pvc1
 kubectl apply -f ydxc.yaml 

查看pod,svc:

所有pod状态均为Running,说明应用部署成功了。

查看pod日志:

 kubectl describe pod ydxc-web-688457d5b9-6p7z6

 查看容器日志:

 kubectl logs ydxc-web-688457d5b9-6p7z6 -c ydxc

测试接口:

 curl 192.168.132.64:30010/yn/save?fd=530000

参考资料:

K8S中使用nfs - 简书环境信息 三台机器,操作系统CentOS 7.4:hanyu-210 10.20.0.210hanyu-211 10.20.0.211hanyu-212 10.20.0...https://www.jianshu.com/p/65ed4bdf0e89blog_demos/k8spvdemofiles at master · zq2599/blog_demos · GitHubhttps://github.com/zq2599/blog_demos/tree/master/k8spvdemofiles

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值