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