解锁容器持久化存储,阿里云上的Kubernetes存储管理

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 最新动态:阿里云 Kubernetes FlexVolume 数据卷发布,支持云盘、NAS 和 OSS。现在起,可以通过阿里云提供的 FlexVolume 插件,实现Pod和阿里云存储服务的自动绑定和回收策略制定,包括云盘、NAS 和 OSS。

容器需要持久化存储

“ 根本不存在无状态化的架构
There is no such thing as a stateless architecture


– Jonas Boner
Lightbend创始人兼CTO ,Akka作者

应用程序需要数据, IT方案被创造出来是为了解决商业业务数据的问题。

容器问世之时,它最初的目的是应对无状态化服务。随着容器技术的成熟,越来越多的人希望容器化应用可以直接关联数据。不论是传统的还是新型应用,都需要存储,如文件、块、对象存储的形式,通过文档、关系型数据库或者流媒体等等。

虚拟化技术的 hypervisor 虚拟机器监视器在硬件模拟层上有很多要求,而比起虚拟化技术,容器将应用的可移植性大大提升。应用程序的可移植性,依赖于容器编排系统的互操作性。但是,需要看到的是即使是现代化的云原生应用,存储也是不可缺少的关键模块,因为有了持久化存储,应用程序就可以基于此开发出很多功能。

容器编排系统和运行时通过特定请求来接通存储服务,如 Creat / Remove, Inspect / List, Attach / Detach, Mount / Unmount等。目前看来,业界都是在通过容器编排系统解决存储问题,能否实现此点也成为了工业界的分水岭。

通过 API 方式链接外部存储服务有两种方式:第一种是 in-tree 驱动,由在容器编排系统内部的原生化代码实现;第二种 out-of-tree驱动,由插件实现。前者受制于容器编排系统的发布周期,而后者可能无法提供容器编排系统配套的加强功能。

image

Kubernetes的存储机制

Docker率先尝试通过 out-of-tree模式解决了如何与外部存储协同的问题,在 1.7 Experimental 版本中创建了Docker Volume Driver接口。

而 Kubernetes 则提供 in-tree 和 out-of-tree两种模式。

In-tree是 Kubernetes 标准版的一部分,已经写入 Kubernetes 代码中。通过基于 Kubernetes 内置 interface 的API命令如 Mount / Unmount, Creat / Delete等进行存储平台的操作。Kuberentes 会在
pod 创建时进行所有相关的必要操作,并且找到相关驱动执行特定 API 背后的所需动作。用户可以充分发挥 Kubernetes 中动态配置和存储类等新特性。唯一的缺点就是,如果存储平台需要 bug 修复或者功能添加的话,需要等待 Kubernetes 的发布周期。一般而言,Kubernetes 的发布周期在3-6个月,这意味着 bug 修复或者持续更新并不能随心所欲。

Out-of-tree 是通过 Flexvolume 接口实现的,Flexvolume 可以使得用户在 Kubernetes 内自己编写驱动或添加自有数据卷的支持。第三方驱动通过数据卷插件路径安装在每个 Kubelet 和 master 节点。这使得存储驱动可以与 Kubernetes 内核代码独立开来,bug 修复和功能更新都不需要等待 Kubernetes 的日程计划。Flexvolume 接口设定认为数据卷的创建和删除都是发生在其外部,因此只有 Attach / Detach 和 Mount / Unmount操作可行,并且也不是在数据卷的全部生命周期可行。

image

阿里云 Kubernetes 的存储支持

阿里云容器服务全球首批通过 Kubernetes 一致性认证,用户可以通过 in-tree 形式挂载存储。

而对于 out-of-tree,阿里云容器服务支持 Kubernetes Pod 自动绑定阿里云云盘、NAS、OSS存储服务。目前对于静态存储卷和动态存储卷的支持情况如下:

image

操作指南:

使用阿里云云盘

使用阿里云 NAS

使用阿里云 OSS

在使用容器过程中,你可能会在日志、数据备份、配置信息等场景中需要用到存储,不如按照上述办法尝试下吧? 对了,你也可以使用日志服务来应对日志的问题哦!

全面提升,阿里云 Docker / Kubernetes(K8S) 日志解决方案与选型对比

参考文章

Container Storage Architectures: How Does Kubernetes, Docker, and Mesos Compare?

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
打赏
0
1
0
0
79136
分享
相关文章
容器数据保护:基于容器服务 Kubernetes 版(ACK)备份中心实现K8s存储卷一键备份与恢复
阿里云ACK备份中心提供一站式容器化业务灾备及迁移方案,减少数据丢失风险,确保业务稳定运行。
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
基于阿里云容器服务Kubernetes版(ACK)的微服务架构设计与实践
本文介绍了如何基于阿里云容器服务Kubernetes版(ACK)设计和实现微服务架构。首先概述了微服务架构的优势与挑战,如模块化、可扩展性及技术多样性。接着详细描述了ACK的核心功能,包括集群管理、应用管理、网络与安全、监控与日志等。在设计基于ACK的微服务架构时,需考虑服务拆分、通信、发现与负载均衡、配置管理、监控与日志以及CI/CD等方面。通过一个电商应用案例,展示了用户服务、商品服务、订单服务和支付服务的具体部署步骤。最后总结了ACK为微服务架构提供的强大支持,帮助应对各种挑战,构建高效可靠的云原生应用。
DeepSeek大解读系列公开课上新!阿里云专家主讲云上智能算力、Kubernetes容器服务、DeepSeek私有化部署
智猩猩「DeepSeek大解读」系列公开课第三期即将开讲,聚焦阿里云弹性计算助力大模型训练与部署。三位专家将分别讲解智能算力支撑、Kubernetes容器服务在AI场景的应用实践、以及DeepSeek一键部署和多渠道应用集成,分享云计算如何赋能大模型发展。欲观看直播,可关注【智猩猩GenAI视频号】预约。 (239字符)
基于阿里云容器服务(ACK)的微服务架构设计与实践
本文介绍如何利用阿里云容器服务Kubernetes版(ACK)构建高可用、可扩展的微服务架构。通过电商平台案例,展示基于Java(Spring Boot)、Docker、Nacos等技术的开发、容器化、部署流程,涵盖服务注册、API网关、监控日志及性能优化实践,帮助企业实现云原生转型。
容器技术实践:在Ubuntu上使用Docker安装MySQL的步骤。
通过以上的操作,你已经步入了Docker和MySQL的世界,享受了容器技术给你带来的便利。这个旅程中你可能会遇到各种挑战,但是只要你沿着我们划定的路线行进,你就一定可以达到目的地。这就是Ubuntu、Docker和MySQL的灵魂所在,它们为你开辟了一条通往新探索的道路,带你亲身感受到了技术的力量。欢迎在Ubuntu的广阔大海中探索,用Docker技术引领你的航行,随时准备感受新技术带来的震撼和乐趣。
68 16
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
123 30
自学软硬件第755 docker容器虚拟化技术youtube视频下载工具
docker容器虚拟化技术有什么用?怎么使用?TubeTube 项目使用youtube视频下载工具

相关产品

  • 容器服务Kubernetes版
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等