在阿里云容器服务中使用NAS(NFS)数据卷

在阿里云容器服务中使用NAS(NFS)数据卷

Docker的特性,决定了容器本身是非持久化的,容器被删除后其中的数据也一并被删除了。Docker提供数据卷(Volume),通过挂载宿主机上的目录来实现持久存储。

但宿主机上的数据卷有很大的局限性

  • 容器在机器间迁移时,数据无法迁移
  • 不同机器之间不能共享数据卷

为了解决这些问题,阿里云容器服务提供第三方数据卷,将各种云存储包装成数据卷,可以直接挂载在容器上,不同容器间可以共享,并在容器重启、迁移时自动重新挂载。

在上一篇文章中,我们介绍了如何使用OSS做为数据卷。OSSFS简单方便,但OSS作为对象存储,用来虚拟文件系统有其天生的缺陷:

  • 修改文件会导致整个文件重写
  • 元数据操作,例如list directory,性能较差,因为需要远程访问OSS服务器
  • 文件/文件夹的rename操作不是原子的

很多用户都希望使用NFS作为数据卷的后端存储。随着阿里云NAS产品的公测,阿里云容器服务迅速地把这一功能集成了进来。

阿里云NAS

阿里云NAS是面向阿里云ECS实例的文件存储服务,提供标准的文件访问协议,用户无需对现有应用做任何修改,即可使用具备无限容量及性能扩展、单一命名空间、多共享、高可靠和高可用等特性的分布式文件系统。

关于NAS的使用方法,请参考其帮助文档。后面的介绍假设你已经创建好了一个NAS实例,并添加了阿里云容器服务集群所在VPC的挂载点。

在阿里云容器服务上创建NAS数据卷

在NAS控制台中,找到要使用的NAS实例,如下图所示。

在阿里云容器服务中使用NAS(NFS)数据卷

目前阿里云NAS只开放了杭州region、VPC访问方式,所以只有在杭州region的VPC容器服务集群才能看到创建NAS数据卷的入口,如下图所示。

在阿里云容器服务中使用NAS(NFS)数据卷

  • 数据卷名:在集群内必须唯一
  • 文件系统ID:NAS实例的ID
  • 挂载点域名:NAS实例在集群所在VPC的访问域名

点击创建就会在集群的所有节点上创建名字相同的NAS数据卷。

使用NAS数据卷

NAS数据卷使用方法跟本机数据卷相同。

  • 通过镜像创建应用:在数据卷的“主机路径”处填写数据卷名,如下图所示

在阿里云容器服务中使用NAS(NFS)数据卷

  • 通过编排文件创建应用:在volumes一节中,第一个冒号前填写数据卷名
volumes:
  - o1:/aaa
  - /tmp:/bbb
上一篇:BitMap、Drawable、inputStream及byte[] 互转


下一篇:[转] DDD领域驱动设计框架分享