首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >NFS分布式存储与nfs-subdir-external-provisioner

NFS分布式存储与nfs-subdir-external-provisioner

作者头像
BUG弄潮儿
发布2025-03-24 13:54:54
发布2025-03-24 13:54:54
38200
代码可运行
举报
文章被收录于专栏:JAVA乐园JAVA乐园
运行总次数:0
代码可运行

服务端操作

代码语言:javascript
代码运行次数:0
运行
复制
#服务端安装
yum install -y nfs-utils rpcbind

#启动服务 并设置开启启动
systemctl start rpcbind && systemctl enable rpcbind
systemctl start nfs-server && systemctl enable nfs-server

#创建共享目录
mkdir -p /root/data/nfs
#设置权限
chmod 666 /root/data/nfs
#修改 NFS 配置文件
vim /etc/exports
/root/data/nfs *(rw,sync,insecure,no_subtree_check,no_root_squash)
#载入配置
exportfs -rv
#查看 NFS 服务项 rpc 服务器注册的端口列表
rpcinfo -p localhost
#服务端看下是否正确加载了设置的 /etc/exports 配置
showmount -e localhost
#关闭防火墙
systemctl stop firewalld.service

客户端操作

代码语言:javascript
代码运行次数:0
运行
复制
#客户端安装
yum install -y nfs-utils

mkdir /nfs_share
#设置开机自动挂载
echo "10.0.2.21:/root/data/nfs /nfs_share nfs defaults 0 0" >> /etc/fstab

#客户端查看能否正常挂载 10.0.2.21 是nfs服务端ip
showmount -e 10.0.2.21

#客户端执行绑定目录注意:一定挂载根目录例如: /share
mount 10.0.2.21:/root/data/nfs /nfs_share

#客户端在/nfs_share里写入文件测试

静态PVC测试

代码语言:javascript
代码运行次数:0
运行
复制
#测试pod使用nfs存储
apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-pv
  namespace: test-ng
spec:
  capacity:
    storage: 1Gi   # 你想要的存储大小
  accessModes:
    - ReadWriteMany  # 允许多个节点读写
  nfs:
    path: /root/data/nfs   # NFS 共享的路径
    server: 10.0.2.21  # NFS 服务器地址
  persistentVolumeReclaimPolicy: Retain

---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-pvc
  namespace: test-ng
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 1Gi

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nfsdemo-v1
  namespace: test-ng
  labels:
    app: nfsdemo
    version: v1
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nfsdemo
      version: v1
  template:
    metadata:
      labels:
        app: nfsdemo
        version: v1
    spec:
      containers:
      - name: nfsdemo
        image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nginx:stable-alpine
        ports:
        - containerPort: 80
        volumeMounts:
        - name: nfs-storage
          mountPath: "/usr/share/nginx/html"# 容器内的挂载路径
      volumes:
      - name: nfs-storage
        persistentVolumeClaim:
          claimName: nfs-pvc
---
apiVersion: v1
kind: Service
metadata:
  name: nfsdemo-service
  namespace: test-ng
spec:
type: NodePort  # 设置为 NodePort 类型
  selector:
    app: nfsdemo  # 与 Deployment 中的 Pod 匹配的标签
  ports:
  - port: 80          # 服务的端口
    targetPort: 80    # Pod 中容器的端口

安装nfs-subdir-external-provisioner

下载

代码语言:javascript
代码运行次数:0
运行
复制
https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner

安装nfs-subdir-external-provisioner

代码语言:javascript
代码运行次数:0
运行
复制
kubectl create ns nfs-provisioner

helm install nfs-subdir-external-provisioner . \
 --set storageClass.name=nfs-sc   \
 --set nfs.server=10.0.2.21   \
 --set nfs.path=/root/data/nfs  \
 -n nfs-provisioner

注:需要替换国内镜像

代码语言:javascript
代码运行次数:0
运行
复制
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/registry.k8s.io/sig-storage/nfs-subdir-external-provisioner

卸载nfs-subdir-external-provisioner

代码语言:javascript
代码运行次数:0
运行
复制
helm uninstall nfs-subdir-external-provisioner \
 -n nfs-provisioner 

动态PVC测试

代码语言:javascript
代码运行次数:0
运行
复制
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: test-claim
spec:
  storageClassName: "nfs-sc"
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 1Gi
---
apiVersion: v1
kind: Pod
metadata:
  name: test-pod
spec:
  containers:
  - name: test-pod
    image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nginx:stable-alpine
    volumeMounts:
    - name: nfs-pvc
      mountPath: "/usr/share/nginx/html"
  volumes:
  - name: nfs-pvc
    persistentVolumeClaim:
      claimName: test-claim
代码语言:javascript
代码运行次数:0
运行
复制
参考:
https://blog.csdn.net/qq_49288154/article/details/143956580
https://www.cnblogs.com/nb-blog/p/17970547
https://blog.csdn.net/ltgsoldier1/article/details/142534752
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-03-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 BUG弄潮儿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 服务端操作
  • 客户端操作
  • 静态PVC测试
  • 安装nfs-subdir-external-provisioner
  • 动态PVC测试
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档