云原生时代 容器持久化存储的最佳方式是什么?
![](https://static001.geekbang.org/infoq/af/af9f6637b50b09be60b00a42f3812d5e.png)
云妹导读:
在存储专题的上一篇文章《送你4句口诀 云存储选型不再犯难》中,云妹为大家的云存储选型提供了几种方法,只需记住 4 句口诀,就能选到适合自己应用特点的云存储服务。本篇文章我们将深入介绍云存储产品体系中的文件存储服务,并看看它在容器环境下如何提供持久化的共享型存储?
首先,我们来看一下云端文件存储具有哪些特点?
云文件服务(Cloud File Service)是一个全托管的简单、易用、高可靠的文件共享存储服务,具有自动弹缩的容量及性能管理等特点,完整支持 POSIX 语义接口,可平滑对接上云企业内部各种应用系统,并满足容器共享存储、AI 训练、大数据分析、视频渲染处理、动态网站以及在线教育等场景下的存储服务需求。
![](https://static001.geekbang.org/infoq/e5/e5d4722059b8ad1119d3b41e1ee78c04.webp?x-oss-process=image/resize,p_80/format,jpg)
相比虚拟机,容器的设计寿命更短,一旦容器销毁,所有的临时数据也将随之消失。当然,如果没法实现容器的持久化存储,容器应用程序的使用将会十分受限。容器化的应用需将要保留的数据持久化到容器外部的 Volume 数据卷中,该存储设备不会随着容器生命周期的终结而消失。持久化数据卷又分为共享和非共享两种类型,非共享数据卷只能被某个节点挂载使用,共享数据卷则可以让不同节点上的多个 Pod 同时使用。
![](https://static001.geekbang.org/infoq/cf/cfd28cb4fc0ac4284a1c4132cdff713b.webp?x-oss-process=image/resize,p_80/format,jpg)
对有状态的应用来说,共享型的卷存储能够很方便地支持容器在集群各节点之间的迁移。由于以微服务架构为主的容器应用多为分布式系统,容器可能在多个节点中动态地启动、停止、伸缩或迁移。因此,数据被不同节点共享访问的文件系统存储,天生可以支持有状态的容器应用的灵活扩容、迁移。
同时,容器是面向应用的运行环境,数据通常要保存到文件系统中,即存储接口以文件形式更适合应用访问。云文件存储服务天生具备共享访问,支持 POSIX 语义接口,可以无缝支持共享容器数据卷。
![](https://static001.geekbang.org/infoq/57/5720352e2c2aa102f8c390fb16d12ab5.webp?x-oss-process=image/resize,p_80/format,jpg)
在线教育是基于视频直播的企业日常运营典型业务场景,往往依赖于众多的 IT 系统联合构建而成。在疫情因素的影响下,在线教育行业迎来一波上云高峰。依托于云计算的技术设施特性,能够帮助企业避免业务侧重复工作、快速扩容、提高资源利用率、降低开发和运维成本。对在线教育架构的云原生优化,大大减少了运维和测试的工作量,方便对运行版本的控制,简化了集群规模管理调度,相比虚机降低了不少成本。
京东智联云为在线教育平台量身定制了多场景解决方案,凭借强大的基础设施服务能力和完善的存储产品矩阵、以云上文件存储服务为核心构建全流程生态,为在线教育企业在课程录制、课程回看以及课程互动监控等场景提供完善的解决方案。通过 IO 路径优化、智能监控、智能弹缩资源解决热点均衡问题,为多集群,数千个课堂的互动、录制及回看的视频直播平台提供了完整的技术基础,提升了用户体验。
![](https://static001.geekbang.org/infoq/33/33a0a4ade9aa13b8fad0d1c2c3b3ff93.webp?x-oss-process=image/resize,p_80/format,jpg)
如图一所示,各类客户终端通过网络负载均衡路由到 Kubernetes 集群,根据课堂需要启动录制 Pod,用以视频、音频的录制,增加课堂互动设置等,该类 Pod 会将录制的视频流直接写入云文件存储中。
在线教育高峰期间会有数千个课堂,即数千个录制 Pod 共享写文件存储;录制完成后,需要对录制内容进行简单的编辑处理,生成可回看的素材,该类任务录制完成的数量动态拉起编辑 Pod,对文件存储进行读写编辑,最后生成回看文件;后期将回看文件上传到云对象存储中,供学生及家长回看课堂内容。
京东智联云解决方案带来的优势:
安全快速的弹性扩缩容能力:应对业务高峰时短时间内扩容,及低谷时的缩容;
多并发、高性能的共享文件存储:加速录制内容的并发写入能力、编辑内容的读写能力,为业务的流程流畅稳定提供基础;
智能感知热点及故障,自动迁移 Pod:通过智能监控,自动迁移的能力,结合共享存储的特点,重保在线业务的稳定;
完善的技术支持团队:专业的团队,及时的响应,为客户减少运维投入及压力,提供稳定可靠的技术保障。
![](https://static001.geekbang.org/infoq/6d/6d9dc28bee30bfde2577e897324fe9d0.webp?x-oss-process=image/resize,p_80/format,jpg)
如图二所示,容器存储控制面是通过标准的京东智联云 CSI,规范的 API 接口创建、删除、加载、卸载 Volume:
首先,调用 Kubelet 启动 Pod,挂载京东智联云文件服务;
Kubelet 根据配置文件找到云文件服务挂载信息,挂载到指定目录下(/var/lib/kubelet/pods/*/volumes/jdcloud-cfs/nas-pv);
Kubelet 创建 Pod,并将京东智联云文件服务的挂载目录映射到/workload 目录,完成控制面的挂载映射流程,接下来 Pod 即可读写 Storage Class 里云文件服务的 PV。
![](https://static001.geekbang.org/infoq/59/59f631673872159742e2437072c25244.webp?x-oss-process=image/resize,p_80/format,jpg)
容器存储在京东智联云文件存储上可实现共享持久化数据存储,支持数千个 Pod 共享读写访问,不但可降低容器存储容量规划管理的复杂度,还能提高存储空间利用率,同时在 Node、Pod 出现访问热点、故障时可以快速切换恢复,保障业务连续性。
著名分析机构 Gartner 在最近发布的《在生产中运行容器和 Kubernetes 的最佳实践》报告中,指出 2022 年将有 75%的组织在生产中使用容器化应用。使用容器编排应用,一方面可以更好地统一调度 CPU、内存,另一方面可统一管理容器中的持久化数据及状态控制信息。随着容器被应用的越来越广泛,云原生成为助力企业全面拥抱云计算的最佳捷径,同时对容器存储提出了更高的要求,而京东智联云存储平台提供一贯的稳定性、极高的性能,严格的网络安全隔离性、无限制的横向扩展能力以及智能灵活的弹缩能力,完美满足容器对存储的各种需求。
推荐阅读:
比MySQL快839倍!揭开分析型数据库JCHDB的神秘面纱
点击【京东智联云】,可了解更多存储知识
更多精彩技术实践与独家干货解析
欢迎关注【京东智联云开发者】公众号
![](https://static001.geekbang.org/infoq/0e/0e9d235592cebe258ab4197e98206044.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
版权声明: 本文为 InfoQ 作者【京东科技开发者】的原创文章。
原文链接:【http://xie.infoq.cn/article/66332481b8faa77065cdd6257】。文章转载请联系作者。
评论