写点什么

有状态容器应用,从入门到实践

用户头像
焱融科技
关注
发布于: 2021 年 03 月 15 日
有状态容器应用,从入门到实践

无状态 or 有状态容器应用


什么是无状态或有状态容器呢?所谓无状态容器应用,意味着容器上应用所使用的历史数据或运行状态不需要进行持久化,重新拉起这个应用时,无需关注这些历史输入。简单来说,例如你要运行一个计算器(而且这个计算器不需要支持历史记录功能),当你重新拉起这个计算器时,之前的数据不需要重新被加载上来,计算器可以认为是一个无状态应用。其它类似的无状态容器应用还包括一些协议转换、请求转发等应用,大体都可以认为是无状态的。


那什么是有状态容器应用呢?有状态容器应用的特征是应用中处理的历史请求或操作,对现在或未来的操作是有影响的,那历史数据就必须被记录下来,这种应用就被称之为有状态容器应用。最典型的有状态应用莫过于数据库了,当数据库重新拉起时,你当然“要求”之前写入数据库的记录必须能被正确无误地加载出来。其实同样地,很多的消息队列(例如 RabbitMQ 等),为了不使消息丢失,消息队列中间件也会将消息进行持久化。


当然,随着容器应用的边界越发广阔,越来越多的有状态应用正在容器化,我们看到很多的 AI、自动驾驶、HPC 任务都在进行容器化。


如何使用 YRCloudFile 支持有状态容器应用


YRCloudFile 为 Kubernetes 提供了标准的 CSI 接口,通过这个接口,用户不需要对 Kubernetes 进行任何侵入,就可以通过 Kubernetes 调度和使用 YRCloudFile 中的存储能力。


在 Kubernetes 中要使用 YRCloudFile 只需要简单的几个步骤:


  1. 确保 Kubernetes 的 Master 节点和计算节点能够访问 YRCloudFile 的存储网络


2. 在 Master 节点和计算节点上,导入 YRCloudFile CSI 插件镜像,使用 YRCloudFile 提供的 yrfs-csi.yaml 模板,创建 YRCloudFile-CSI Pod



3. 验证创建的 YRCloudFile-CSI POD 全部为 “Running”



4. 使用我们提供的 storageclass 样例 yaml 创建 YRCloudFile storageclass


5. 使用 storageClassName: yrcloudfile-sc 直接创建 PVC,并将 PVC 关联至需要使用持久化存储的 Pod


整个过程就完成了。


除此之外,我们还可以通过 YRCloudFile 的管理界面添加多个 Kubernetes 集群,在 YRCloudFile 界面上实现对 PVC、PV 等资源的 QoS、Quota 等属性的设置,对 PV 进行 IO 监控以及查看 PV 中的数据热点分布情况。


AI 应用通过容器,使用 YRCloudFile 的效果


在实际的客户环境中,我们使用三台 x86 服务器,基于 100Gb InfiniBand 网络,搭建了 YRCloudFile 集群,与客户现有的 10 多台服务器组成的存储集群进行了基于业务的实际测试对比。



语音降噪测试:



在实际测试中,YRCloudFile 不但提供了多种读写模式、方便的接入方式,同时呈现出的性能以及对 AI 应用效率的提升,都比原有存储方案有了大幅提升。


容器存储未来之路


未来,容器存储的发展将不光只是接口层面的支撑,还将要求性能、QoS、Quota、全方位监控、数据冷热生命周期管理等功能,同时,面向大数据分析、数据库的针对性优化、数据的容灾备份等都会显得越来越重要,最终帮助用户逐步把大部分业务实现容器化。


发布于: 2021 年 03 月 15 日阅读数: 9
用户头像

焱融科技

关注

Drive Future Storage 2020.05.29 加入

面向未来的下一代云存储

评论

发布
暂无评论
有状态容器应用,从入门到实践