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



