QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

适用于 EBS CSI 驱动程序的 EKS 支持

  • 2019-09-18
  • 本文字数:2004 字

    阅读完需:约 7 分钟

适用于 EBS CSI 驱动程序的 EKS 支持

今天,我们宣布推出适用于 EBS 容器存储接口驱动程序的 EKS 支持。这项举措的目的是为了在 Kubernetes 等容器编排系统和 AWS 等存储供应商之间建立统一的存储接口。

Kubernetes 中的存储的历史

按照最初的设想,容器非常适合无状态应用程序。但容器并未预置持久性的存储,因此无法支持有状态的工作负载。而许多应用程序在设计时并未考虑容器化,因此为了支持将各种类型的应用程序都迁移到云中,容器编排程序推出了对存储的支持,从而让有状态应用程序成为可能。


Kubernetes 率先通过树内卷插件的方式推出了对有状态工作负载的支持。树内卷插件是指插件代码是核心 Kubernetes 代码的组成部分并随 Kubernetes 二进制代码包交付。但这种模式被证明问题极大,因为希望为 Kubernetes 增加对其存储系统的支持(甚至只是修复现有卷插件中的某个漏洞)的供应商将不得不与 Kubernetes 的发布进程保持同步。由于这一问题的存在,容器存储接口 (CSI) 应运而生。这是一种向 Kubernetes 等容器编排系统上的容器化工作负载暴露任意块和文件存储系统的标准。Kubernetes v1.9 以内测版的方式推出了 CSI 支持,Kubernetes v1.10 推出公测版,Kubernetes v1.13 正式发布。随着 CSI 规范的出现,容器编排系统和存储提供商能够以模块化的方式独立演进。借助 CSI 驱动程序,Kubernetes 上游发布周期与 CSI 驱动程序发布周期将会脱钩,从而让您受益。用户无需等待新的 Kubernetes 版本发布即可升级至最新版本的驱动程序。

Amazon Elastic Block Store (EBS)

Amazon EBS 是一种云块存储服务,通过它可以从 EC2 实例直接访问专用存储卷。最初推出的 EBS 支持是 Kubernetes 中的一种树内卷插件。随着 CSI 规范的发布,我们开始开发兼容 Amazon EBS 的驱动程序。我们以开源的方式在 GitHub 中提供 EBS CSI 驱动程序(包含在 kubernetes-sigs 中)。从 Kubernetes 版本 1.12(驱动程序版本 0.2,使用 CSI 0.3 规范)和版本 1.13(驱动程序版本 0.3,使用 CSI 1.0 规范)开始,此驱动程序都可用于在 AWS 上自我管理的 Kubernetes 安装。但在版本 1.14 以前,CSINodeInfo 和 CSIBlockVolume 等功能属于 Kubernetes 的内测功能,因此还不被 Amazon EKS 支持。现在,借助 适用于 Kubernetes 版本 1.14 的 EKS 支持,用户可以将 EBS CSI 驱动程序(版本 v0.4.0 或以上)安装到他们的 EKS 1.14 集群中。

EBS CSI 驱动程序操作

EBS CSI 驱动程序将按照 CSI 规范的要求,执行将卷预置、附加和挂载到 Pod 中的基本操作,以及移除卷的反向操作。为 Pod 预置存储的现行树内工作流保持不变,您只需定义将作为预置程序使用 CSI 驱动程序的新存储类即可。以下是一个存储类清单文件的示例:


kind: StorageClassapiVersion: storage.k8s.io/v1 metadata:  name: csi-sc provisioner: ebs.csi.aws.comvolumeBindingMode: WaitForFirstConsumer
复制代码


此 CSI 驱动程序支持当前树内 EBS 卷驱动程序支持的所有存储类参数。参数包括 type、csi.storage.k8s.io/fsType、iopsPerGB、encrypted 和 kmsKeyId。 请注意,zone/zones 参数未包含在内,因为它已在 kubernetes v1.12 中被 allowedTopologies 参数代替。如果您构建需要在不同的可用区预置卷以便 Pod 访问的多区应用程序,可以将 volumeBindingMode 设置为 WaitForFirstConsumer,从而开启卷调度功能。


通过四个步骤即可将 EBS CSI 驱动程序用于 Kubernetes 集群:


1.向工作线程节点授予恰当的权限。


2.安装驱动程序:kubectl apply -k “github.com/kubernetes-sigs/aws-ebs-csi-driver/deploy/kubernetes/overlays/stable/?ref=master


3.使用与以上类似的示例清单文件创建存储类。


4.创建一个持久卷声明或持久卷,并使用与树内卷插件相同的工作流消费该卷。


有关安装说明的更多详细信息,请参阅 EKS 文档。有关 EBS CSI 驱动程序的更多详细信息,请参阅 aws-ebs-csi-driver GitHub 页面的 README 文件。

限制

要连接到 EBS 卷,在 EKS 上的 Pod 内运行的应用程序必须位于该 EBS 卷所在可用区的某个节点内。目前,一个 EBS 卷一次只能挂载到一个 Kubernetes 节点。

迁移到 EBS CSI 驱动程序

在 Kubernetes 1.14 中,CSIMigrationAWS 作为一项 Kubernetes 内测功能推出,增加了支持 shim 和翻译逻辑将卷操作从 EBS 树内插件路由到 EBS CSI 插件的功能。由于它的内测性质,此功能还不能用于 EKS 中的生产用途。我们也在向 Kubernetes 的上游做贡献,以在未来的发布中将此功能从内测版升级到公测版。目前,现有树内 EBS 插件仍获支持。

后续工作

有关 EBS CSI 插件的后续工作将集中在多个主题上,包括内测功能的稳定(例如卷容量调整和卷快照)、使驱动程序支持从树内 EBS 插件进行迁移、增加性能测试等等。如果您希望了解更多详细信息,可以在 GitHub 上查看我们的里程碑。我们衷心欢迎大家的反馈,期待你们的宝贵贡献!


本文转载自 AWS 博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/eks-support-ebs-csi-driver/


2019-09-18 15:131057
用户头像

发布了 1855 篇内容, 共 122.1 次阅读, 收获喜欢 79 次。

关注

评论

发布
暂无评论
发现更多内容

UV映射技巧和窍门

3D建模设计

3D渲染 3D材质编辑 3D材质纹理贴图 UV纹理贴图 UV映射

亚马逊云科技助力施耐德电气加速AI技术在制造场景的落地与创新

财见

一文详解VScode 的远程开发

快乐非自愿限量之名

远程开发 vs-code

Postgres 中文周报:PostgreSQL 2023 热门回顾

酷克数据HashData

面向研发使用、全栈开发、前后端分离的低代码平台

互联网工科生

软件开发 前后端分离 低代码 全栈开发

AE脚本-图层分布路径形状高级控制 Tweaks

Rose

软件测试开发/全日制/测试管理丨接口功能测试

测试人

软件测试 自动化测试 接口测试 测试开发 测试管理

阿里云 EMAS & 魔笔:12月产品动态

移动研发平台EMAS

软件测试开发/全日制/测试管理丨用户端 Web 自动化测试

测试人

软件测试 自动化测试 测试开发 Web自动化测试 web测试

鸿蒙系统应用开发之开发准备

EquatorCoco

华为 系统开发 鸿蒙系统

如何选择适合自己的外贸独立站域名?

九凌网络

2023年国内AI Agent下项目大盘点,科技大厂与创业公司齐头并进

王吉伟频道

创业 融资 大语言模型 AI Agent AI智能体

GaussDB(for MySQL)新特性TDE发布:支持透明数据加密

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 华为云GaussDB(for MySQL)

软件测试开发/全日制/测试管理丨用户端 App 自动化测试

测试人

软件测试 自动化测试 测试开发 app自动化测试

了解什么是UV纹理?

3D建模设计

3D渲染 3D材质编辑 3D材质纹理贴图 UV纹理贴图 UV映射

NeurIPS’23 Paper Digest | 如何把 LLM 的推理能力应用于事件序列预测?

可信AI进展

人工智能 机器学习 推理 推理模型 算法、

医疗机构如何释放数据要素价值 推动数据资产化

用友BIP

数据资产

关于 IntelliJ IDEA 中 Schedule for Addition 的问题

Rose

IntelliJ IDEA

AE脚本-快速创建微风摇曳摆动波浪动画 Breeze

Rose

2024年最热门的15个科技工作岗位

互联网工科生

程序员 科技 岗位

业务无忧:稳定云虚拟主机让您的在线业务更加顺畅

一只扑棱蛾子

虚拟主机 云虚拟主机

什么是多边形网格以及如何编辑它?

3D建模设计

3D渲染 3D材质编辑 3D材质纹理贴图 UV纹理贴图 UV映射

如何选择适合自己的外贸独立站域名?

九凌网络

CAE技术的局限性讨论-CAE咨询

智造软件

CAE CAE软件

软件测试开发/全日制/测试管理丨接口测试抓包与 Mock/接口自动化

测试人

软件测试 接口测试 测试开发 Mock

UV贴图和展开初学者指南

3D建模设计

3D渲染 3D材质编辑 3D材质纹理贴图 UV纹理贴图 UV映射

使用AI搭建SpringBoot服务

X.F

AI Openjdk Java' openai Bard

DAPP、链游、交易所和区块链钱包开发

区块链软件开发推广运营

交易所开发 区块链开发 链游开发 公链开发 区块链开发DAPP开发

Apache Flink 和 Paimon 在自如数据集成场景中的使用

Apache Flink

大数据 flink 实时计算

低代码平台几分钟构建一个内部应用程序

高端章鱼哥

开发工具 低代码开发 JNPF

适用于 EBS CSI 驱动程序的 EKS 支持_服务革新_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章