k8s使用nfs作为动态storageClass存储
00 分钟
2024-2-6
2025-2-23
类型
状态
日期
链接
摘要
标签
分类
图标
密码

1 概述

相信使用过pv和pvc的肯定会想到很多问题,比如每次申请 pvc 都需要手动添加pv,这岂不是太不方便了。那我们如何实现类似于公有云或者私有云的共享存储模式呢?kubernetes 提供了 storageclass 的概念,接下来我们来一探究竟。
先上一张图大家就比较清楚了:
notion image

2 环境

2.1 k8s集群环境

Node(宿主机上)都要安装nfs

2.2 nfs 环境

2.2.1 搭建nfs服务端

vi /etc/exports
这行代码的意思是把共享目录 /home/nfsfile 共享给 * 这个客户端ip,后面括号里的内容是权限参数,其中:
  • rw 表示设置目录可读写。
  • sync 表示数据会同步写入到内存和硬盘中,相反 rsync 表示数据会先暂存于内存中,而非直接写入到硬盘中。
  • no_root_squash NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。
  • no_all_squash 不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都不会拥有匿名用户权限。 showmount -e localhost\

2.2.2 客户端验证nfs

我们在客户端执行以下命令: showmount -e 10.8.111.153
客户端开始挂载共享目录:
客户端验证是否挂载成功:
最后,如果需要永久挂载该共享目录(即实现开机自动挂载),则可以通过如下方式实现:

3 直接pod挂载nfs

4 使用storageClass、pv、pvc

rbac.yaml
nfs-subdir-external-provisioner.yaml
nfs-storage-class.yaml
nfs-test-pvc.yaml
nfs-test-nginx-pod.yaml

5 其他

上一篇
GitHub Hosts
下一篇
UEFI模式刷BIOS

评论
Loading...