Kubernetes(K8s)部署nfs服务

1.编写yaml文件

nfs-app-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    run: nfs-app
  name: nfs-app
  namespace: cbf
spec:
  replicas: 1
  selector:
    matchLabels:
      run: nfs-app
  strategy:
    rollingUpdate:
       maxSurge: 1
       maxUnavailable: 1
    type: RollingUpdate
  template:
    metadata:
       labels:
         run: nfs-app
    spec:
       containers:
       - image: itsthenetwork/nfs-server-alpine:12
         name: nfs-app
         env:
         - name: SHARED_DIRECTORY
           value: "/data/"
         securityContext:
           privileged: true
         ports:
         - containerPort: 2049
           protocol: TCP
         volumeMounts:
         - mountPath: "/data/"
           name: nfs-vol
       volumes:
       - name: nfs-vol
         hostPath:
           path: /root/data/k8s/temp2/data/
       dnsPolicy: ClusterFirst
       restartPolicy: Always

nfs-app-service.yaml

apiVersion: v1
kind: Service
metadata:
  labels:
    run: nfs-app
  name: nfs-app
  namespace: cbf
spec:
  ports:
  - port: 2049
    name: nfs-app
    protocol: TCP
    targetPort: 2049
    nodePort: 32049
  selector:
    run: nfs-app
  type: NodePort

2.编写启动脚本

nfs.sh

#!/usr/bin/env bash
deployment=./nfs-app-service.yaml
svc=./nfs-app-deployment.yaml
case $1 in
    delete)
        kubectl delete -f $deployment 2>/dev/null
        kubectl delete -f $svc   2>/dev/null
        ;;

    start)
        kubectl apply -f $deployment
        kubectl apply -f $svc
        ;;

    reload)
        kubectl delete -f $deployment 2>/dev/null
        kubectl delete -f $svc   2>/dev/null
        sleep 3
        kubectl apply -f $deployment
        kubectl apply -f $svc
        ;;
    *)

        echo "Uasge:please choose {scp | start |delete | reload }"
esac

3.安装和使用

1.启动服务

1.修改文件编码:
  dos2unix nfs.sh
2.启动
  sh nfs.sh start
3.重启
  sh nfs.sh reload
4.删除
  sh nfs.sh delete  

2.客户端

1.安装客户端
  sudo apt install nfs-client -y
2.挂载
  #方式一:容器ip
  kubectl get pods -o wide -ncbf
  mount -v -o vers=4,loud 10.244.0.79:/ /root/data/k8s/temp2/share/
  #方式二: service的ip
  kubectl get svc -o wide -ncbf
  mount -v -o vers=4,loud,port=32049 172.16.0.15:/ /root/data/k8s/temp2/share/
3.卸载
  umount /root/data/k8s/temp2/share/
4.验证是否已挂在
  df -h
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 在Ubuntu上部署NFS服务器并与Kubernetes集群进行连接是相对简单的。首先,您需要通过几行命令安装NFS服务器。使用以下命令安装NFS服务器软件包: ``` sudo apt install nfs-kernel-server ``` 接下来,创建一个目录来作为NFS共享的挂载点,并设置适当的权限: ``` mkdir -p /mnt/disk chown nobody:nogroup /mnt/disk chmod 777 /mnt/disk ``` 然后,编辑NFS服务器的配置文件,将共享目录添加到配置中: ``` vim /etc/exports ``` 在配置文件中添加以下行,将/mnt/disk目录共享给10.0.0.0/8网段的主机: ``` /mnt/disk 10.0.0.0/8(rw,sync,no_subtree_check) ``` 保存并关闭文件。接下来,您可以执行以下命令来安装NFS客户端 provisioner: ``` helm install azure/nfs-client-provisioner --set nfs.server=10.0.0.188 --set nfs.path=/mnt/disk --generate-name ``` 这将在Kubernetes集群中安装NFS客户端 provisioner,并将其配置为使用先前设置的NFS服务器。请确保将nfs.server和nfs.path参数替换为您的NFS服务器的正确值。如果您遇到问题,可以尝试添加--feature-gates=RemoveSelfLink=false参数来解决,或者直接使用新版本的nfs-client-provisioner。使用以下命令安装新版本的nfs-client-provisioner: ``` helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner --set nfs.server=192.168.56.188 --set nfs.path=/data/disk ``` 同样,请确保将nfs.server和nfs.path参数替换为您的NFS服务器的正确值。这样,您就可以在Ubuntu上成功部署NFS并与Kubernetes集群连接了。 #### 引用[.reference_title] - *1* *2* *3* [k8s环境安装nfs服务器](https://blog.csdn.net/hidahua/article/details/129037020)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值