通过 Kubernetes 的 NFS 驱动您可以方便的使用阿里云 NAS 文件存储服务。
操作步骤
创建 NAS 文件系统。
登录 文件存储管理控制台,创建一个 NAS 文件系统,参见 创建文件系统。
[backcolor=transparent]注意:创建的 NAS 文件系统需要和您的集群位于同一地域。
假设您的挂载点为 055f84ad83-ixxxx.cn-hangzhou.nas.aliyuncs.com。
执行以下命令创建一个类型为 NAS 的 PesistentVolume。[backcolor=transparent]root@master [backcolor=transparent]# cat << EOF |kubectl apply -f -- [backcolor=transparent]apiVersion[backcolor=transparent]:[backcolor=transparent] v1
- [backcolor=transparent]kind[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]PersistentVolume
- [backcolor=transparent]metadata[backcolor=transparent]:
- [backcolor=transparent] name[backcolor=transparent]:[backcolor=transparent] jenkins
- [backcolor=transparent]spec[backcolor=transparent]:
- [backcolor=transparent] capacity[backcolor=transparent]:
- [backcolor=transparent] storage[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]5Gi
- [backcolor=transparent] accessModes[backcolor=transparent]:
- [backcolor=transparent] [backcolor=transparent]-[backcolor=transparent] [backcolor=transparent]ReadWriteMany
- [backcolor=transparent] persistentVolumeReclaimPolicy[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]Retain
- [backcolor=transparent] nfs[backcolor=transparent]:
- [backcolor=transparent] path[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]/
- [backcolor=transparent] server[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]055f84ad83[backcolor=transparent]-[backcolor=transparent]ixxxx[backcolor=transparent].[backcolor=transparent]cn[backcolor=transparent]-[backcolor=transparent]hangzhou[backcolor=transparent].[backcolor=transparent]nas[backcolor=transparent].[backcolor=transparent]aliyuncs[backcolor=transparent].[backcolor=transparent]com
- [backcolor=transparent]EOF
创建一个 PersistentVolumeClaim 来请求绑定这个 PersistentVolume。
- [backcolor=transparent]root@master [backcolor=transparent]# cat << EOF | kubectl apply -f -
- [backcolor=transparent]apiVersion[backcolor=transparent]:[backcolor=transparent] v1
- [backcolor=transparent]kind[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]PersistentVolumeClaim
- [backcolor=transparent]metadata[backcolor=transparent]:
- [backcolor=transparent] name[backcolor=transparent]:[backcolor=transparent] myclaim
- [backcolor=transparent]spec[backcolor=transparent]:
- [backcolor=transparent] accessModes[backcolor=transparent]:
- [backcolor=transparent] [backcolor=transparent]-[backcolor=transparent] [backcolor=transparent]ReadWriteMany
- [backcolor=transparent] resources[backcolor=transparent]:
- [backcolor=transparent] requests[backcolor=transparent]:
- [backcolor=transparent] storage[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]5Gi
- [backcolor=transparent]EOF
创建一个应用来申明挂载使用该数据卷。
- [backcolor=transparent]root@master [backcolor=transparent]# cat << EOF |kubectl apply -f -
- [backcolor=transparent]apiVersion[backcolor=transparent]:[backcolor=transparent] v1
- [backcolor=transparent]kind[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]Pod
- [backcolor=transparent]metadata[backcolor=transparent]:
- [backcolor=transparent] name[backcolor=transparent]:[backcolor=transparent] mypod
- [backcolor=transparent]spec[backcolor=transparent]:
- [backcolor=transparent] containers[backcolor=transparent]:
- [backcolor=transparent] [backcolor=transparent]-[backcolor=transparent] name[backcolor=transparent]:[backcolor=transparent] myfrontend
- [backcolor=transparent] image[backcolor=transparent]:[backcolor=transparent] registry[backcolor=transparent].[backcolor=transparent]aliyuncs[backcolor=transparent].[backcolor=transparent]com[backcolor=transparent]/[backcolor=transparent]spacexnice[backcolor=transparent]/[backcolor=transparent]netdia[backcolor=transparent]:[backcolor=transparent]latest
- [backcolor=transparent] volumeMounts[backcolor=transparent]:
- [backcolor=transparent] [backcolor=transparent]-[backcolor=transparent] mountPath[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]"/var/www/html"
- [backcolor=transparent] name[backcolor=transparent]:[backcolor=transparent] mypd
- [backcolor=transparent] volumes[backcolor=transparent]:
- [backcolor=transparent] [backcolor=transparent]-[backcolor=transparent] name[backcolor=transparent]:[backcolor=transparent] mypd
- [backcolor=transparent] persistentVolumeClaim[backcolor=transparent]:
- [backcolor=transparent] claimName[backcolor=transparent]:[backcolor=transparent] jenkins
- [backcolor=transparent]EOF
至此,您就将 NAS 远程文件系统挂载到了您的 Pod 应用当中了。