容器应用使用阿里云文件存储NAS最佳实践

简介: 应用程序需要数据, IT方案被创造出来是为了解决商业业务数据的问题。容器问世之时,它最初的目的是应对无状态化服务。随着容器技术的成熟,越来越多的人希望容器化应用可以直接关联数据。不论是传统的还是新型应用,都需要持久化存储。

容器应用需要使用共享文件存储吗

应用程序需要数据, IT方案被创造出来是为了解决商业业务数据的问题。容器问世之时,它最初的目的是应对无状态化服务。随着容器技术的成熟,越来越多的人希望容器化应用可以直接关联数据。不论是传统的还是新型应用,都需要持久化存储。
阿里云文件存储NAS以简单,易用,弹性扩展的特点,自然而然成为容器存储的一个主要选择。

通常来说,共享文件存储存储主要应用在需要长时间运行,多POD间需要共享访问数据,同时还需要进行故障切换的有状态容器业务场景,例如如下的一些场景:

  • 内容管理应用程序像WordPress和Drupal需要扩展到多个实例来获取性能和冗余型,并在多个实例间共享上传数据、插件、模板。
  • 开发工具比如JIRA, Artifactory, Git需要实例之间共享代码和编译数据并实现高可用性。
  • 机器学习框架MXNet和Tensorflow需要通过文件系统接口访问数据,并持久存储允许多个用户共享访问和运行相同的数据集。
  • 共享笔记本系统PAI-Notebook需要持久存储笔记本和用户工作区,并允许多个研究员合作共享访问数据。

可以通过哪些方式将共享文件系统到容器

阿里云文件存储NAS单文件系统默认可以创建两个根目录的挂载地址(可申请更多数量),挂载地址对应的是DNS域名,可以归属于不同的VPC,因此通过不同VPC的挂载地址将文件系统挂载到不同VPC的ECS或者容器应用。

挂载单文件系统到容器

  • 每个POD挂载一个文件系统
    对于不需要数据在多个POD间共享的场景(Deployment无状态服务为主),但又需要持久化存储具备较好的性能和灵活的弹性扩展能力,不同POD间的数据需要完全的隔离以保证数据安全和性能的QOS,我们可以为每个POD挂载一个独立的文件系统。单POD可以独享文件系统的吞吐和IOPS能力。
  • 多个POD挂载一个文件系统
    对于需要在多个POD间共享数据,并且需要POD具备Failover故障恢复能力的场景(Stateful有状态服务为主),我们可以将一个文件系统通过同一挂载地址同时挂载到多个POD上。数据可以被多个POD同时共享访问,单个POD销毁或故障后在其它节点拉起。

挂载文件系统子目录到容器

前面提到,单文件系统默认有两个根路径的挂载地址,但是使用挂载地址+子目录的形式将子目录挂载给单个POD,这样该POD只拥有这个被挂载子目录的权限,无法看到其它子目录的数据。
对于很多微服务化的容器应用,容器POD随着业务规模的变化动态灵活的创建和销毁,为了管理的方便简单,我们可以使用单一文件系统的多目录挂载给不同应用的POD,例如,/application1和/application2,这样application1的POD只能看到自己挂载目录的数据。因为单文件系统的吞吐能力是随存储容量弹性增长,所以使用单一文件系统还有个优势,就是可以通过多目录聚集的容量获得更大的吞吐性能。

什么是静态文件存储卷和动态文件存储卷

静态存储卷是预先创建好PVC和PV,再创建应用时使用对应PV进行存储映射。动态存储卷则只需要预先定义StorageClass,在创建应用的时候动态创建文件系统或者目录后,映射为PV关联给容器使用。例如,当为不同的用户提供不同的nas子目录进行挂载的时候,或者当使用有状态的SatefulSet部署应用,每个pod配置使用不同nas数据卷的时候,推荐使用动态存储卷。

如何选择正确的文件存储规格类型

  • 通用型NAS
    通用型NAS主要特点是容量可以随数据写入或者删除弹性伸缩,吞吐能力也随容量的伸缩弹性变化,通过数据存储容量获得较高的聚合吞吐能力。支持NFS和SMB协议、Quota、ACL、加密,具备较广的企业应用兼容性,同时还支持生命周期管理降低存储成本。通用型NAS在同一个地域内可以跨可用区挂载,配合容器的多AZ实现高可用能力。

应用场景:Linux/Windows企业应用、WEB内容管理、数据库备份、主目录

  • 极速型NAS
    极速型NAS主要特点是提供低时延高IOPS的读写能力,适用于大量小文件,元数据密集型操作的应用场景,可提供百微秒级的时延和200K的IOPS能力。极速型NAS支持NFS协议、快照和加密,建议和容器POD部署在同一个可用分区以获得更低的时延。

应用场景:时延敏感型企业应用、CI/CD开发测试环境、PHP网站、日志存储、轻量级数据库

  • CPFS
    并行文件存储CPFS是专为高性能计算和AI训练设计的高性能并行文件存储,主要针对大容量、高吞吐和高IOPS的高性能计算业务,可提供上百GB/s的吞吐能力。目前阿里云的EHPC镜像,基因容器镜像和AI容器镜像都和CPFS进行了深度集成。

应用场景:HPC高性能计算、AI训练、基因分析、影视渲染、EDA仿真、油气勘探、气象分析

如何备份容器存储的数据

文件系统快照

阿里云文件存储NAS极速型规格支持文件系统快照,可以针对容器挂载的文件系统进行快照保护,快照可配置灵活的策略周期性的创建副本数据,如果发生容器数据人为误删除或者文件系统误删除,都可以通过快照回滚来恢复数据。

文系统备份服务

阿里云文件存储NAS通用型规格支持文件系统备份服务,可以配置备份服务针对容器挂载的文件系统进行备份保护,备份任务周期性的降数据副本保存到备份库。如果你不小心删除数据,需要从备份恢复,你可以恢复备份现有文件系统中的一个目录或一个新的文件系统。

如何加密容器的数据

阿里云文件存储NAS支持数据存储加密功能,当前已经支持使用KMS托管密钥进行数据加密。可以在为容器创建文件系统时选择使能加密功能,KMS服务会默认创建一个托管密钥,并使用该密钥对存储数据进行加密。

通过文件存储生命周期管理降低容器存储成本

阿里云文件存储NAS支持低频存储类型,可以配置生命周期管理策略,将指定时间内没有读写访问的数据自动迁移到低频NAS里存储,最低成本可降低90%,如果后续需要访问这些数据,用户可以直接读写访问,后台透明将数据取回,应用无感知。例如,像基因测序、大数据分析等应用场景,用户生产的大部分数据都不会频繁访问,但是需要长期存储。基于生命周期管理的低频NAS就可以很好的帮助用户解决存储成本和应用访问接口一致的问题。
生命周期管理的配置也非常简单,只需要对需要挂载到容器的文件系统或者子目录启用该功能,并且配置对应策略即可。

如何监控容器存储的状态

阿里云文件存储NAS支持接入阿里云监控服务,可以对文件系统的吞吐、IOPS/元数据OPS和时延进行监控统计,同时可以配置阀值告警。

  • IOPS
    统计了单文件系统总的IOPS性能,如果你使用的是通用型NAS,并且监控到IOPS已经达到了规格上限,则可以考虑拆分为多个文件系统或者更换使用极速型NAS。
  • 吞吐
    统计了所有访问该文件系统的客户端读写带宽总和,如果监控到使用的通用型NAS吞吐达到了上限,可以考虑更换使用CPFS文件存储或者提交吞吐配额提升申请。
  • 时延
    该项统计了文件存储后端的IO读写时延,但并不包含计算节点到文件存储的网络时延,因此对时延数据的分析还要综合考虑跨可用区的因素和VPC网络是否存在异常。
相关实践学习
函数计算部署PuLID for FLUX人像写真实现智能换颜效果
只需一张图片,生成程序员专属写真!本次实验在函数计算中内置PuLID for FLUX,您可以通过函数计算+Serverless应用中心一键部署Flux模型,快速体验超写实图像生成的魅力。
相关文章
|
供应链 安全 Cloud Native
阿里云飞天企业版获【可信云·容器平台安全能力】先进级认证
阿里云飞天企业版容器系列产品获中国信息通信研究院【可信云·容器平台安全能力】先进级认证,这是飞天企业版容器产品获得《等保四级PaaS平台》和《 云原生安全配置基线规范V2.0》之后,本年度再一次获得行业权威认可,证明飞天企业版的容器解决方案具备符合行业标准的最高等级容器安全能力。
582 8
阿里云飞天企业版获【可信云·容器平台安全能力】先进级认证
|
存储 Kubernetes 网络安全
关于阿里云 Kubernetes 容器服务(ACK)添加镜像仓库的快速说明
本文介绍了在中国大陆地区因网络限制无法正常拉取 Docker 镜像的解决方案。作者所在的阿里云 Kubernetes 集群使用的是较旧版本的 containerd(1.2x),且无法直接通过 SSH 修改节点配置,因此采用了一种无需更改 Kubernetes 配置文件的方法。通过为 `docker.io` 添加 containerd 的镜像源,并使用脚本自动修改 containerd 配置文件中的路径错误(将错误的 `cert.d` 改为 `certs.d`),最终实现了通过多个镜像站点拉取镜像。作者还提供了一个可重复运行的脚本,用于动态配置镜像源。虽然该方案能缓解镜像拉取问题,
1253 3
|
11月前
|
机器学习/深度学习 自然语言处理 算法
48_动态架构模型:NAS在LLM中的应用
大型语言模型(LLM)在自然语言处理领域的突破性进展,很大程度上归功于其庞大的参数量和复杂的网络架构。然而,随着模型规模的不断增长,计算资源消耗、推理延迟和部署成本等问题日益凸显。如何在保持模型性能的同时,优化模型架构以提高效率,成为2025年大模型研究的核心方向之一。神经架构搜索(Neural Architecture Search, NAS)作为一种自动化的网络设计方法,正在为这一挑战提供创新性解决方案。本文将深入探讨NAS技术如何应用于LLM的架构优化,特别是在层数与维度调整方面的最新进展,并通过代码实现展示简单的NAS实验。
512 0
|
Prometheus Kubernetes 监控
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。
|
人工智能 运维 Kubernetes
阿里云容器服务AI助手2.0 - 新一代容器智能运维能力
2024年11月,阿里云容器服务团队进一步深度融合现有运维可观测体系,在场景上覆盖了K8s用户的全生命周期,正式推出升级版AI助手2.0,旨在更好地为用户使用和运维K8S保驾护航。
|
人工智能 安全 API
容器化AI模型的安全防护实战:代码示例与最佳实践
本文基于前文探讨的容器化AI模型安全威胁,通过代码示例展示如何在实际项目中实现多层次的安全防护措施。以一个基于TensorFlow的图像分类模型为例,介绍了输入验证、模型加密、API认证和日志记录的具体实现方法,并结合最佳实践,如使用安全容器镜像、限制权限、网络隔离等,帮助构建更安全的AI服务。
|
人工智能 运维 监控
阿里云ACK容器服务生产级可观测体系建设实践
本文整理自2024云栖大会冯诗淳(花名:行疾)的演讲,介绍了阿里云容器服务团队在生产级可观测体系建设方面的实践。冯诗淳详细阐述了容器化架构带来的挑战及解决方案,强调了可观测性对于构建稳健运维体系的重要性。文中提到,阿里云作为亚洲唯一蝉联全球领导者的容器管理平台,其可观测能力在多项关键评测中表现优异,支持AI、容器网络、存储等多个场景的高级容器可观测能力。此外,还介绍了阿里云容器服务在多云管理、成本优化等方面的最新进展,以及即将推出的ACK AI助手2.0,旨在通过智能引擎和专家诊断经验,简化异常数据查找,缩短故障响应时间。
阿里云ACK容器服务生产级可观测体系建设实践
|
安全 持续交付 云计算
课时5:阿里云容器服务:最原生的集成Docker和云服务
阿里云容器服务以服务化形式构建容器基础设施,大幅提升开发效率,简化应用部署流程。通过Docker容器和DevOps工具(如Jenkins),实现自动化部署与迭代,优化企业内部复杂部署问题。该服务支持GPU调度、混合云架构无缝迁移,并与阿里云产品体系无缝集成,提供安全防护、网络负载均衡等多重功能支持。凭借微服务架构,帮助企业突破业务瓶颈,提高资源利用率,轻松应对海量流量。
598 0
课时5:阿里云容器服务:最原生的集成Docker和云服务
|
弹性计算 人工智能 资源调度
DeepSeek大解读系列公开课上新!阿里云专家主讲云上智能算力、Kubernetes容器服务、DeepSeek私有化部署
智猩猩「DeepSeek大解读」系列公开课第三期即将开讲,聚焦阿里云弹性计算助力大模型训练与部署。三位专家将分别讲解智能算力支撑、Kubernetes容器服务在AI场景的应用实践、以及DeepSeek一键部署和多渠道应用集成,分享云计算如何赋能大模型发展。欲观看直播,可关注【智猩猩GenAI视频号】预约。 (239字符)
|
监控 Cloud Native Java
基于阿里云容器服务(ACK)的微服务架构设计与实践
本文介绍如何利用阿里云容器服务Kubernetes版(ACK)构建高可用、可扩展的微服务架构。通过电商平台案例,展示基于Java(Spring Boot)、Docker、Nacos等技术的开发、容器化、部署流程,涵盖服务注册、API网关、监控日志及性能优化实践,帮助企业实现云原生转型。