最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

NFS分布式存储与nfs

网站源码admin5浏览0评论

NFS分布式存储与nfs

服务端操作

代码语言: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-north-4.myhuaweicloud/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运行复制

安装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-north-4.myhuaweicloud/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-north-4.myhuaweicloud/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运行复制
参考:



本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-03-22,如有侵权请联系 cloudcommunity@tencent 删除externalnfs分布式存储服务端客户端

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论