1. nfs准备
1. yum install nfs-utils rpcbind -y
2. cd / && mkdir tmp1
3. chown -R nfsnobody.nfsnobody /tmp1
4. vim /etc/exports
[root@k8s-master manifests]# cd /etc
[root@k8s-master etc]# vim exports
/tmp1 *(rw,sync)
5. systemctl enable nfs-server
6. systemctl start nfs-server
7. showmount -e
[root@k8s-master etc]# showmount -e
Export list for k8s-master:
/tmp1 *
2. 创建pv
[root@k8s-master k8s]# cat pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv1
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Recycle
storageClassName: slow
nfs:
path: /tmp1
server: 127.0.0.1
3. 申请pvc
[root@k8s-master k8s]# cat pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc1
spec:
storageClassName: slow
accessModes:
- ReadWriteMany
resources:
requests:
storage: 200Mi
4. 挂载pod
[root@k8s-master k8s]# cat pod-busybox-pvc.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod-use-pvc
spec:
containers:
- name: pod-use-pvc
image: busybox
command:
- sleep
- "3600"
volumeMounts:
- name: pvc-path
mountPath: /pvc-data
volumes:
- name: pvc-path
persistentVolumeClaim:
claimName: pvc1
5. 验证
1. 容器内新建文件
[root@k8s-master /]# kubectl get po
NAME READY STATUS RESTARTS AGE
busybox-test-5c67469d4c-2wcxx 1/1 Running 1 6d8h
kubernetes-bootcamp-7d6f8694b6-bthc9 1/1 Running 4 22d
kubernetes-bootcamp-7d6f8694b6-ktk8k 1/1 Running 4 22d
nginx-6db489d4b7-hlgwm 1/1 Running 4 29d
pod-busybox 1/1 Running 0 37m
pod-use-pvc 1/1 Running 0 33s
[root@k8s-master /]# kubectl exec -ti pod-use-pvc -- sh
/ # ls
bin dev etc home proc pvc-data root sys tmp usr var
/ # cd pvc-data/
/pvc-data # ls
/pvc-data # touch a
touch: a: Read-only file system
/pvc-data # touch a
/pvc-data #
2. 共享存储服务器查看新建文件
[root@k8s-master /]# cd tmp1/
[root@k8s-master tmp1]# ls
a
[root@k8s-master tmp1]# clear
[root@k8s-master tmp1]# ll
总用量 0
-rw-r--r--. 1 nfsnobody nfsnobody 0 2月 4 00:06 a
[root@k8s-master tmp1]# pwd
/tmp1