开发者社区 问答 正文

Kubernetes 集群中存储管理怎么使用 NAS 数据卷


通过 Kubernetes 的 NFS 驱动您可以方便的使用阿里云 NAS 文件存储服务。

操作步骤


  1. 创建 NAS 文件系统。
    登录 文件存储管理控制台,创建一个 NAS 文件系统,参见 创建文件系统

    [backcolor=transparent]注意:创建的 NAS 文件系统需要和您的集群位于同一地域。

    假设您的挂载点为 055f84ad83-ixxxx.cn-hangzhou.nas.aliyuncs.com。

  2. 执行以下命令创建一个类型为 NAS 的 PesistentVolume。[backcolor=transparent]root@master [backcolor=transparent]# cat << EOF |kubectl apply -f -
  3. [backcolor=transparent]apiVersion[backcolor=transparent]:[backcolor=transparent] v1
  4. [backcolor=transparent]kind[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]PersistentVolume
  5. [backcolor=transparent]metadata[backcolor=transparent]:
  6. [backcolor=transparent]  name[backcolor=transparent]:[backcolor=transparent] jenkins
  7. [backcolor=transparent]spec[backcolor=transparent]:
  8. [backcolor=transparent]  capacity[backcolor=transparent]:
  9. [backcolor=transparent]    storage[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]5Gi
  10. [backcolor=transparent]  accessModes[backcolor=transparent]:
  11. [backcolor=transparent]    [backcolor=transparent]-[backcolor=transparent] [backcolor=transparent]ReadWriteMany
  12. [backcolor=transparent]  persistentVolumeReclaimPolicy[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]Retain
  13. [backcolor=transparent]  nfs[backcolor=transparent]:
  14. [backcolor=transparent]    path[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]/
  15. [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
  16. [backcolor=transparent]EOF

创建一个 PersistentVolumeClaim 来请求绑定这个 PersistentVolume。
  1. [backcolor=transparent]root@master [backcolor=transparent]# cat << EOF | kubectl apply -f -
  2. [backcolor=transparent]apiVersion[backcolor=transparent]:[backcolor=transparent] v1
  3. [backcolor=transparent]kind[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]PersistentVolumeClaim
  4. [backcolor=transparent]metadata[backcolor=transparent]:
  5. [backcolor=transparent]  name[backcolor=transparent]:[backcolor=transparent] myclaim
  6. [backcolor=transparent]spec[backcolor=transparent]:
  7. [backcolor=transparent]  accessModes[backcolor=transparent]:
  8. [backcolor=transparent]    [backcolor=transparent]-[backcolor=transparent] [backcolor=transparent]ReadWriteMany
  9. [backcolor=transparent]  resources[backcolor=transparent]:
  10. [backcolor=transparent]    requests[backcolor=transparent]:
  11. [backcolor=transparent]      storage[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]5Gi
  12. [backcolor=transparent]EOF

创建一个应用来申明挂载使用该数据卷。
  1. [backcolor=transparent]root@master [backcolor=transparent]# cat << EOF |kubectl apply -f -
  2. [backcolor=transparent]apiVersion[backcolor=transparent]:[backcolor=transparent] v1
  3. [backcolor=transparent]kind[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]Pod
  4. [backcolor=transparent]metadata[backcolor=transparent]:
  5. [backcolor=transparent]  name[backcolor=transparent]:[backcolor=transparent] mypod
  6. [backcolor=transparent]spec[backcolor=transparent]:
  7. [backcolor=transparent]  containers[backcolor=transparent]:
  8. [backcolor=transparent]    [backcolor=transparent]-[backcolor=transparent] name[backcolor=transparent]:[backcolor=transparent] myfrontend
  9. [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
  10. [backcolor=transparent]      volumeMounts[backcolor=transparent]:
  11. [backcolor=transparent]      [backcolor=transparent]-[backcolor=transparent] mountPath[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]"/var/www/html"
  12. [backcolor=transparent]        name[backcolor=transparent]:[backcolor=transparent] mypd
  13. [backcolor=transparent]  volumes[backcolor=transparent]:
  14. [backcolor=transparent]    [backcolor=transparent]-[backcolor=transparent] name[backcolor=transparent]:[backcolor=transparent] mypd
  15. [backcolor=transparent]      persistentVolumeClaim[backcolor=transparent]:
  16. [backcolor=transparent]        claimName[backcolor=transparent]:[backcolor=transparent] jenkins
  17. [backcolor=transparent]EOF

至此,您就将 NAS 远程文件系统挂载到了您的 Pod 应用当中了。

展开
收起
反向一觉 2017-10-30 16:34:13 2848 分享 版权
0 条回答
写回答
取消 提交回答