一、创建和获取阿里云的挂载点,不了解的可以看阿里云帮助文档
https://help.aliyun.com/document_detail/134923.html?spm=a2c4g.11186623.6.793.6264714bLwZMoQ
例如,我这里获得的挂载点为:88888888-ney35.cn-shenzhen.nas.aliyuncs.com
二、创建目录,把文件上传到上面去
找台机器把目录挂载上去,上传需要容器需要使用的文件
yum install -y nfs-utils
mount -t nfs -o vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport 88888888-ney35.cn-shenzhen.nas.aliyuncs.com:/ /mnt
# 创建对应的目录, 注意创建的目录要与 PV 的路径一样
cd /mnt
mkdir gc-wms2
cd gc-wms2
mkdir dir1 dir2
touch dir1/hello.txt
touch dir2/world.txt
tree ./
./
├── dir1
│ └── hello.txt
└── dir2
└── world.txt
# umount
cd ~ && umount /mnt
三、创建 PV 和 PVC
cat gc_wms_nas2.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: gc-wms-pv-nas
namespace: devops
labels:
alicloud-pvname: gc-wms-pv-nas
spec:
capacity:
storage: 10Mi
accessModes:
- ReadWriteMany
csi:
driver: nasplugin.csi.alibabacloud.com
volumeHandle: gc-wms-pv-nas
volumeAttributes:
server: "88888888-ney35.cn-shenzhen.nas.aliyuncs.com" # 指定挂载点
path: "/gc-wms2" # 与第二部分在 nas 创建的目录一致
mountOptions:
- nolock,tcp,noresvport
- vers=3
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: gc-wms-pvc-nas
namespace: devops
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Mi
selector:
matchLabels:
alicloud-pvname: gc-wms-pv-nas
# 创建
kubectl apply -f gc_wms_nas2.yaml
四、创建应用
cat test.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-nas
namespace: devops
labels:
app: klvchen-nginx
spec:
selector:
matchLabels:
app: klvchen-nginx
template:
metadata:
labels:
app: klvchen-nginx
spec:
containers:
- name: klvchen-nginx
image: nginx:1.7.9
ports:
- containerPort: 80
volumeMounts:
- name: pv-nas
mountPath: "/data1"
subPath: "dir1" # 指定挂载 nas 中 /gc-wms2/dir1 文件夹
- name: pv-nas
mountPath: "/data2"
subPath: "dir2" # 指定挂载 nas 中 /gc-wms2/dir2 文件夹
volumes:
- name: pv-nas
persistentVolumeClaim:
claimName: gc-wms-pvc-nas # 指定上面 PVC 的名字
# 启动
kubectl apply -f test.yaml
五、测试
kubectl get pods -n devops
NAME READY STATUS RESTARTS AGE
nginx-nas-69f5fd8f78-phfs4 1/1 Running 0 7s
kubectl -n devops exec -it nginx-nas-69f5fd8f78-phfs4 /bin/bash
# 测试成功
root@nginx-nas-69f5fd8f78-phfs4:/# cd data1/
root@nginx-nas-69f5fd8f78-phfs4:/data1# ls
hello.txt
root@nginx-nas-69f5fd8f78-phfs4:/data1# cd ..
root@nginx-nas-69f5fd8f78-phfs4:/# cd data2/
root@nginx-nas-69f5fd8f78-phfs4:/data2# ls
world.txt