NAS是阿里云提供的一种可共享访问、弹性扩展、高可靠以及高性能的分布式文件系统,您可以在自建的Kubernetes集群使用阿里云NAS作为Volume。本文为您介绍如何使用非PVC方式,挂载NAS到ECI Pod上。
前提条件
自建Kubernetes集群中已部署VNode。
如果您的Kubernetes集群部署在线下IDC,请确保已打通IDC与阿里云的网络。
注意事项
NAS为共享存储,一个NAS可以挂载到多个Pod上。此时,如果多个Pod同时修改相同数据,需要应用自行执行数据同步。
在卸载NAS前,请勿删除NAS挂载点,否则可能会造成操作系统无响应。
操作步骤
创建NAS文件系统和挂载点。
准备YAML。
将以下内容保存为test-csi-nas.yaml。
apiVersion: apps/v1 kind: Deployment metadata: name: test-csi-nas labels: app: nginx spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: nodeSelector: k8s.aliyun.com/vnode: "true" tolerations: - key: k8s.aliyun.com/vnode operator: "Equal" value: "true" effect: "NoSchedule" containers: - name: nginx image: registry-vpc.cn-beijing.aliyuncs.com/eci_open/nginx:1.14.2 ports: - containerPort: 80 volumeMounts: - name: cache-volume mountPath: /cache-test volumes: - name: cache-volume csi: driver: nasplugin.csi.alibabacloud.com fsType: nas volumeAttributes: server: "0389a***-nh7m.cn-beijing.extreme.nas.aliyuncs.com" path: "/" vers: "3" options: "nolock,tcp,noresvport"
volumeAttributes中需配置NAS相关参数,说明如下:
参数
描述
server
NAS的挂载点地址。
path
挂载子目录。极速型NAS需要以
/share
为父目录,例如/share/path1
。vers
挂载NAS的NFS协议版本号。推荐使用v3,极速型NAS仅支持v3。
创建ECI Pod并挂载NAS。
kubectl create -f test-csi-nas.yaml
查看结果。
kubectl get pods -o wide
预期返回:
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES test-csi-nas-57dd67549f-dfxfl 1/1 Running 0 43m 172.16.XX.XXX cn-beijing.vnd-2zedtmwhcv8kbuou**** <none> <none> test-csi-nas-57dd67549f-frp5h 1/1 Running 0 43m 172.16.XX.XXX cn-beijing.vnd-2zedtmwhcv8kbuou**** <none> <none>
查看Pod中的文件目录,可以看到已生成NAS对应的挂载目录
/cache-test
,且第一个Pod中写入的文件可以在第二个Pod中查看,即两个Pod共享使用NAS存储。