如何实现容器数据的持久化可以参考我上传的ppt;不同场景下如何选择合理的存储技术则要针对具体场景来讨论,目前总的来说有两种选择,基于文件level的和基于物理块存储设备的。
收起容器技术本身并不强调持久化,当讨论容器中的数据持久化,本质上是容器中所运行业务的要求。
因此,容器运行要选择什么样的持久化存储,必须要根据容器中运行的业务的特性来选择。
大致上,我觉得可以分为几种情况:
如果是状态需要持久化的应用,那么又可以具体地进行分析,例如:
对于一般非数据库类应用,如果可以接受应用的改造,应尽量选择通过服务方式访问持久化存储,这样更符合云原生应用的最佳实践,提高应用的灵活性、迁移性,减少环境依赖。相比之下,如果采用文件系统访问外部共享式存储,存在容量限制(通常多个容器会共享容量)、迁移限制(必须迁移到可以挂载共享卷的节点)、时效性(容器迁移后需要重新挂载,还有可能需要处理挂载失败等异常情况)
对于数据库类负载,为了保证效率和稳定性,通常生产环境中会专门开辟一个区域或特定的高性能节点(如配置有HBA卡)来承载数据库类负载,所以这类负载不太强调迁移性,而读写性能、容量独享更关键,因此使用效率更高的块设备较合适,如果要考虑远程主备复制,那就要考虑更可靠的商业方案
收起