剑指企业级云原生,阿里云 CNFS 如何破局容器持久化存储困境

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 云原生时代,我们如何解决海量容器的编排和存储?又该如何提升容器存储的性能和稳定性?

云原生趋势下,应用容器化比例正在快速增长,Kubernetes 也已成为云原生时代新的基础设施。

据 Forrester 预测,到 2022 年, 全球企业及组织在生产环境运行容器化应用。观察今天的容器和 Kubernetes 的应用现状,我们可以看到两个普遍的现象。首先,在云上托管 Kubernetes 已经成为企业上云及运行容器的优先选择。另外,用户使用容器的方式也在改变,从无状态应用 到 核心企业应用 到 数据智能应用,越来越多的企业使用容器来部署生产级别、复杂度高和高性能计算的有状态应用。比如 Web 服务、内容资料库、数据库,甚至 DevOps、AI/大数据应用等。

image.png

云原生时代,我们如何解决海量容器的编排和存储?又该如何提升容器存储的性能和稳定性?

容器应用趋势下的存储能力演变

随着基础设施从物理机到虚拟机,到以 Kubernetes 为代表的容器环境,甚至到 Serverless 的逐渐演进,今天的计算和应用正在面临巨大的变化,最明显的就是从过去应用在虚拟机里边去独占一个 CPU 内存分区,到今天在 Serverless 里演变成在函数层面去为用户提供服务。

image.png

在这样的技术体系下,存储的能力同样需要随之改变,主要体现在以下几个方面:

1.高密

虚拟机时代,一个虚拟机就对应一个完整的存储空间,可以用其去存储单个应用所需要的所有数据相关的访问和存储需求。但今天在 K8s 在 serverless 环境里的存储是共享的,一个容器需要去访问的是一个巨大的存储资源池,带来的代价就是存储的密度是非常大的,同时访问同一个存储能力的要求也变得更高。

2.弹性

当我们创建一个物理机或者虚拟机时,常会在一个比较稳定的周期之内访问和使用存储介质。但今天在容器环境里,前端计算服务的弹性伸缩变化是非常快的,可能需要瞬间从数十台到几百台,因此也需要非常高的弹性存储能力。

3.数据隔离

在 K8s 和 Serverless 里,很难做到内存和存储资源的独占,因为容器环境下存储资源、计算资源,甚至于操作系统以及一些依赖的基础包都是共享的。那这个时候就需要在基础架构层面实现一种安全的隔离,同样在上层的应用层面,也需要通过完善的安全策略和手段去实现数据隔离,这同样是非常大的变化和挑战。

容器环境下,企业需要怎样的存储能力?

块存储、文件存储、对象存储是现在比较常见的容器存储解决方案,那么在容器环境下,企业需要怎样的文件存储能力呢?

image.png

1. 应用兼容

我们很难快速让企业整体的应用方式发生转变。很多场景下,企业使用存储的方式会是共享或者分布式存储集群。这时,存储对于应用的兼容能力就非常重要,能不能在容器环境和非容器环境下保持一致,让应用的改造尽可能变得更少,甚至于不需要改造,这是一个迫切重要满足的诉求。

2. 极致弹性

容器部署的一大特点需要随着业务的峰值和波谷,满足快速的弹性需求。而当上层的计算发生弹性之后,底下的存储也需要有能力快速跟进,而不是用耗费大量时间去做底层数据的同步。

3. 共享

在大数据、高性能计算等场景下,应用的数据集是非常庞大的,量级动辄就是 TB、十几个 TB 的级别,有些场景甚至可以达到上百 TB。这种规格的数据如果无法共享,而是需要去在弹性的容器环境下通过拷贝传输完同步,这对于成本的压力、对于时效性的损失,都是很难保障的。

4. 安全可靠

不管底层的基础架构如何改变,是物理机、虚拟机、K8s 的容器还是 Serverless,无论怎么去抽象,业务应用最根本的诉求一定是安全,应用间不能相互污染。因此存储就必须在数据共享能力之上,为数据安全提供保障。

5. 优化成本

企业对于成本优化的追求,在所有的应用场景里几乎都是孜孜不倦的。即使是在最核心的应用场景里,我们依然需要去控制成本。因为今天业务的增长和变化是非常迅速的,数据的增速也是飞快的。怎么在数据快速增长的同时里兼顾成本的优化,也是对存储非常大的一个挑战。

阿里云容器网络文件系统 CNFS

针对容器中使用文件存储的优势和挑战,阿里云推出了容器网络文件系统 CNFS,内置在阿里云托管的 Kubernetes 服务 ACK 中。CNFS 通过将阿里云的文件存储抽象为一个 K8s 对象(CRD)进行独立管理,包括创建、删除、描述、挂载,监控及扩容等运维操作,使用户可以在享受容器使用文件存储带来的便捷的同时,提高文件存储的性能和数据安全,并提供容器一致的声明式管理。

image.png

CNFS 在弹性伸缩、性能优化、可访问性、可观测性、数据保护、声明式等方面针对容器存储进行了深度优化,使其与同类方案相比具有以下明显优势:

1.在存储类型方面,CNFS支持文件存储和对象存储,目前支持阿里云的NAS、CPFS、OSS云产品
2.支持 Kubernetes 兼容的声明式生命周期管理,可以一站式管理容器和存储
3.支持 PV 的在线扩容、自动扩容,针对容器弹性伸缩特性优化
4.支持更好的和 Kubernetes 结合的数据保护,包括PV快照、回收站、删除保护、数据加密、数据灾备等
5.支持应用级别的应用一致性快照,自动分析应用配置和存储依赖,一键备份、一键还原
6.支持 PV 级别监控
7.支持更好的访问控制,提高共享文件系统的权限安全,包括目录级 Quota、ACL
8.提供性能优化,针对文件存储的小文件读写,提供微秒级性能优化
9.成本优化,提供低频介质及转换策略,降低存储成本

典型使用场景及最佳实践

1. 极致弹性的容器应用场景

以互联网和大型金融服务类突发应用为例,这种场景下具有需要在短时间内弹性扩容大量的容器,对资源弹性伸缩有较高的能力要求的特点,因此容器存储需具备通用的弹性和快速伸缩能力。这类场景典型的应用包括:媒体/娱乐/直播、Web 服务/内容管理、金融服务、游戏、持续集成、机器学习、高性能计算等。

在这个场景中,Pod 需要灵活的挂载和卸载存储 PV,存储的挂载需要匹配容器快速启动,并且存在大量文件I/O;当海量的持久化数据快速增长,存储成本压力也会比较大。建议使用 ACK+CNFS+NAS 的组合,结合CNFS 可以做到以下优化:

内置文件存储类,在短时间内可启动数千个容器,并毫秒级挂载文件存储 PV
内置文件系统 NAS,可以为海量容器提供共享读写能力,快速实现容器应用/数据高可用
针对低时延和小文件的优化,实现微秒级读写性能,解决容器高并发访问对文件存储性能的要求
提供文件存储生命周期管理,自动冷热分级,降低存储成本

2. AI 容器应用场景

现在有越来越多的 AI 业务在容器中进行训练和推理,云上海量的基础设施和 IDC 结合的方式也为 AI 提供了更灵活的算力调度。当 AI 业务在云上进行训练和推理时,应用的数据集是非常庞大的。比如在自动驾驶领域,数据集可以达到 10个 PB 甚至于超百 PB 的规模,在如庞大的数据量下做 AI 训练,又需要保证训练的时效性,使容器 AI 主要面临以下挑战:

AI 的数据流复杂,存在存储系统的 IO 瓶颈;
AI 训练、推理需要高性能的计算和存储;
AI 算力协同,云和 IDC 资源/应用 需要统一调度

针对这个场景,建议使用 ACK 纳管集群+CNFS+文件存储 NAS/CPFS 的组合,主要可以获得以下优化:

优化的文件存储 NAS 读写性能,提供高性能共享存储,与 AI 场景完美匹配,支持海量小文件访问,加速 AI 训练、推理性能
适配了容器环境的 GPU 云服务器、裸金属服务器(神龙)等计算集群,提供超高吞吐和超高 IOPS 能力;CPFS 还可支持云上/云下混合部署
ACK 纳管集群,支持 ACK 纳管 IDC 自建的 Kubernetes 集群,云上/云下形成统一的资源池,异构资源/应用统一调度,最大化的利用云上海量基础设施的计算优势

3. 基因计算应用场景

现在基因检测技术已经逐渐走向成熟,并且在很多医院里慢慢被引入,通过对患者基因的测量更加精准、快速地解决复杂病症。对于我们每一个,基因的采样数据者是非常庞大的,动辙都是几十个 GB。而在进行某类定向的基因分析时,只有个人的样本是远远不够的,可能需要采集十万甚至百万个样本,这对容器存储会带来非常大的挑战,包括:

大规模样本的数据挖掘需要海量计算资源和存储资源,数据增长快,存储费用高,管理困难。
海量数据需要快速、安全的分发到国内多地,多数据中心需要共享访问
批量样本处理时间长,性能需求高,资源需求峰谷明显,难以规划

针对基因计算的场景,建议使用 ACK+AGS+CNFS+文件存储 NAS+OSS 的组合,来解决以下问题:

NFS 内置的文件存储类,可以快速搭建极速、低成本、高精度的基因计算容器环境,满足基因测序计算和数据共享需求
CNFS 支持对象存储 OSS 类型的 PV,可以保存下机数据和组装后数据以及分析结果数据,用于数据的分发、归档、交付,保证 海量用户同时上传、下载数据,提高数据交付效率。同时提供海量存储空间,同时通过生命周期管理,将冷数据归档存储,降低存储成本
AGS 针对基因计算的热点数据进行 GPU 加速计算,性能相比传统模式提高 100 倍,快速降低基因测序的时间和成本

当然,除上以上三种典型代表,CNFS 在很多场景下都可以为业务提供容器和存储结合使用的深度优化方案。欢迎大家通过文档了解:https://help.aliyun.com/document_detail/264678.html

案例:使用 CNFS 和文件存储构建现代化企业应用

通过与 CNFS的 深度集成,阿里云文件存储 NAS 已经成为容器存储最理想的解决方案。下面通过几个真实的客户案例,帮助大家更直接地了解如何使用阿里云容器服务 ACK 和文件存储构建现代化企业应用。

视频服务

百家云是全国领先的一站式视频服务提供商。疫情期间,百家云流量暴涨,业务量短时间内增长了数十倍,如此迅速扩容需要在客户无感知的情况下完成;另外,百家云业务场景大量读写需求,同时计算集群水平扩容4个集群,在录制转码的过程当中,原有存储系统遇到 IO 瓶颈,对于百家云大流量、高并发的处理能力是个严峻考验。

这里对存储提出的要求包括快速适配容器应用的弹性伸,以及缩之后需要快速的数据访问。最终,通过阿里云容器服务 ACK 和文件存储 NAS 的结合,优化容器集群架构,实现了在 3 天内弹性扩容 10 倍资源。

image.png

文件存储 NAS 按需弹性扩展,基于容器服务 ACK 自动化定时伸缩,短时间内启动数千个容器,可以完美适配容器应用的弹性。采用文件存储 NAS,提供标准的访问接口兼容主流转码软件,轻松挂载编辑视频工作站。百家云的 K8s 集群对性能要求极高,通过高性能 NAS 服务,能供提供最高 10GB 大吞吐,解决了 IO 瓶颈,完美应对百家云大流量、高并发的场景,保障疫情期间直播录制业务顺利上线。

自动驾驶

第二个案例是汽车行业的典型客户,该客户是中国领先的智能汽车制造商,也是融合互联网和人工智能前沿创新的科技公司,其产品搭载了多项人工智能技术的服务 ,如语音助手、自动驾驶等。

该企业面临的问题是在自动驾驶场景下,训练素材通常是上亿的 100KB 的小图片,总量高达上百 TB,训练过程中,GPU 通常需要反复随机访问训练集中的一部分图片,需要文件系统提供高 IOPS 的文件访问能力,从而加速训练过程;大规模存储系统稳定性以及性能无法随规模进行线性扩展;并且随着存储资源急剧增长,也带来了成本高、运维管理复杂等问题。

image.png

通过采用阿里云文件存储,完美支撑了该客户的智能驾驶的高性能计算平台,最终随机访问小文件训练速度提高了 60%;文件存储在集群中的多个数据节点,多个客户端同时访问,支持并行扩展;并且阿里云文件存储支持多级存储数据流动,大大简化了自动驾驶数据采集、传输、存储的流程。

基因计算

最后是来自基因计算场景的案例,该客户是全球领先的生命科学前沿机构。客户面临的问题:数据增长快,当前存储无法满足容量和性能线性扩展需求,基因计算性能遇到 IO 瓶颈;大规模样本数据存储费用高,管理困难。

通过使用容器集群挂载文件存储 NAS 高性能计算基因数据分析中的共享存储,保存下机数据和组装后的数据,以及过程中的中间数据,为该机构提供了低延时、高 IOPS 的容器存储能力,存储性能由 1GB/s 提升至 10GB/s,实现数据 12 小时端到端处理完成,包括数据上云,结果下云分发。

image.png

文件存储 NAS 提供弹性扩展和高吞吐量的带宽,根据每次业务规模不同,NAS 按需分配容量并且提供与之匹配的带宽,既满足了业务弹性的需求,又节省 TCO;文件存储 NAS 通过统一的流程、统一的资源调度云上和云下的异构计算资源,低成本且高效地完成基因计算任务。

更多关于阿里云容器网络文件系统 CNFS 的技术能力、应用场景和使用方式,请点击(https://yqh.aliyun.com/live/ack_cnfs_release)了解。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
1月前
|
供应链 安全 Cloud Native
阿里云飞天企业版获【可信云·容器平台安全能力】先进级认证
阿里云飞天企业版容器系列产品获中国信息通信研究院【可信云·容器平台安全能力】先进级认证,这是飞天企业版容器产品获得《等保四级PaaS平台》和《 云原生安全配置基线规范V2.0》之后,本年度再一次获得行业权威认可,证明飞天企业版的容器解决方案具备符合行业标准的最高等级容器安全能力。
阿里云飞天企业版获【可信云·容器平台安全能力】先进级认证
|
1月前
|
监控 安全 Cloud Native
阿里云容器服务&云安全中心团队荣获信通院“云原生安全标杆案例”奖
2024年12月24日,阿里云容器服务团队与云安全中心团队获得中国信息通信研究院「云原生安全标杆案例」奖。
|
2月前
|
人工智能 运维 Kubernetes
阿里云容器服务AI助手2.0 - 新一代容器智能运维能力
2024年11月,阿里云容器服务团队进一步深度融合现有运维可观测体系,在场景上覆盖了K8s用户的全生命周期,正式推出升级版AI助手2.0,旨在更好地为用户使用和运维K8S保驾护航。
|
2月前
|
Prometheus Kubernetes 监控
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。
|
2月前
|
人工智能 运维 监控
阿里云ACK容器服务生产级可观测体系建设实践
本文整理自2024云栖大会冯诗淳(花名:行疾)的演讲,介绍了阿里云容器服务团队在生产级可观测体系建设方面的实践。冯诗淳详细阐述了容器化架构带来的挑战及解决方案,强调了可观测性对于构建稳健运维体系的重要性。文中提到,阿里云作为亚洲唯一蝉联全球领导者的容器管理平台,其可观测能力在多项关键评测中表现优异,支持AI、容器网络、存储等多个场景的高级容器可观测能力。此外,还介绍了阿里云容器服务在多云管理、成本优化等方面的最新进展,以及即将推出的ACK AI助手2.0,旨在通过智能引擎和专家诊断经验,简化异常数据查找,缩短故障响应时间。
阿里云ACK容器服务生产级可观测体系建设实践
|
6天前
|
Ubuntu API 网络虚拟化
ubuntu22 编译安装docker,和docker容器方式安装 deepseek
本脚本适用于Ubuntu 22.04,主要功能包括编译安装Docker和安装DeepSeek模型。首先通过Apt源配置安装Docker,确保网络稳定(建议使用VPN)。接着下载并配置Docker二进制文件,创建Docker用户组并设置守护进程。随后拉取Debian 12镜像,安装系统必备工具,配置Ollama模型管理器,并最终部署和运行DeepSeek模型,提供API接口进行交互测试。
130 15
|
1月前
|
Ubuntu NoSQL Linux
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
160 6
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
|
1月前
|
Kubernetes Linux 虚拟化
入门级容器技术解析:Docker和K8s的区别与关系
本文介绍了容器技术的发展历程及其重要组成部分Docker和Kubernetes。从传统物理机到虚拟机,再到容器化,每一步都旨在更高效地利用服务器资源并简化应用部署。容器技术通过隔离环境、减少依赖冲突和提高可移植性,解决了传统部署方式中的诸多问题。Docker作为容器化平台,专注于创建和管理容器;而Kubernetes则是一个强大的容器编排系统,用于自动化部署、扩展和管理容器化应用。两者相辅相成,共同推动了现代云原生应用的快速发展。
207 11
|
2月前
|
Ubuntu Linux 开发工具
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
Docker 是一个开源的容器化平台,允许开发者将应用程序及其依赖项打包成标准化单元(容器),确保在任何支持 Docker 的操作系统上一致运行。容器共享主机内核,提供轻量级、高效的执行环境。本文介绍如何在 Ubuntu 上安装 Docker,并通过简单步骤验证安装成功。后续文章将探讨使用 Docker 部署开源项目。优雅草央千澈 源、安装 Docker 包、验证安装 - 适用场景:开发、测试、生产环境 通过以上步骤,您可以在 Ubuntu 系统上成功安装并运行 Docker,为后续的应用部署打下基础。
96 8
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
|
2月前
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
178 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档