天天看点

Rook v0.8发布:存储编排器的框架!

我们很高兴地宣布Rook的v0.8版本!这是该项目的一个重要里程碑,引入了一个集成多个存储提供程序的框架。这将使这些存储团队在将解决方案集成到云原生环境中时更容易创建可靠且用户友好的体验。为CockroachDB和Minio添加了两个新的存储提供程序,社区正在努力添加其他,包括NFS、Cassandra、Nexenta和Alluxio。

Rook的第一个存储提供程序已经成熟:我们很高兴地宣布Ceph Custom Resource Definition(CRD)已经升级到Beta——这显示出我们对稳定版本的可靠性和升级的承诺。

我们为不断增长的社区和许多依赖Kubernetes存储解决方案的人提供支持,特别是自1月份加入CNCF以来。基于v0.8所取得的令人兴奋的进步,我们目前正在提议将CNCF中的Rook项目从沙箱阶段升级到孵化阶段。请与我们联系,分享你使用Rook的体验,以帮助加强提案!

我们要感谢社区的支持!在所有不断增长的指标中,这里只是一些亮点:10M + Docker pull、3100+ Github star、83个Github贡献者。

存储提供程序框架

为了继续Rook作为Kubernetes存储提供程序编排器的愿景,我们已经扩展到编排Ceph之外。其他存储提供程序也需要与Kubernetes CRD深度集成才能被视为“一等公民”。Rook的存储提供程序框架以多种方式提供帮助:

存储资源规范化:原始磁盘和目录的本地存储资源管理为所有存储提供程序提供了一致的体验。

operator模式和管道:Rook使用operator模式使存储资源成为Kubernetes中的一等公民,这意味着它们可以从ubectl进行本地管理,就像任何其他内置的Kubernetes资源一样。

通用规范、策略和逻辑:框架既可以代表存储提供程序处理实现,也可以为用户创建一致的体验。

测试工作:所有能使存储提供程序与云原生环境更容易集成的通用模式、规范和逻辑也将通过自动化集成测试进行良好的测试和审查。

现在让我们更多地了解与Rook集成的存储提供程序。

CockroachDB

CockroachDB是一个云原生SQL数据库,用于构建可在灾难中幸存的全球可扩展云服务。通过创建数据库所需的服务,Rook将帮助你开始使用CockroachDB。你所要做的就是按照此简单指南创建集群以创建Cluster CRD,然后Rook operator将启动集群。

Minio

Minio是与Amazon S3云存储服务兼容的对象存储服务器。创建Minio对象服务所需要做的就是按照本指南创建Object Store CRD。Rook operator将启动服务让你进入对象商店!

正在开发的提供程序

其他提供程序处于不同的发展阶段。

NFS正在被加紧开发,以便使用NFS服务器暴露存储。

Nextenta、Alluxio和Cassandra已被社区提议与Rook整合。设计正在进行中。

我们期待听到社区成员对更多存储提供程序的意见,我们可以共同合作!

版本控制

为了支持Ceph CRD的Beta声明以及多个存储提供程序,CRD已被分解为独立的API组:rook.io、ceph.rook.io、cockroachdb、rook.io和minio.rook.io。每个组都将使用相应的CRD进行版本控制。因此,Ceph CRD在此版本中已被宣布为Beta,而其他CRD仍为alpha。

改进的安全模型

在此版本中,Rook的安全模型得到了显著改善。在这些更改之前,Rook operator基本上必须为你的Kubernetes集群提供完全管理员特权。使用新的安全模型,运行Rook operator所需的特权受到更多限制。Rook不再需要特权来创建集群角色、角色或角色绑定。不是由operator创建角色和绑定,而是被分解到清单中,以使集群管理员完全可见并控制Rook可以做什么。这些变化具有以下优点:

所需的角色和绑定在集群管理员创建的清单中是声明性的。管理员可以控制在必要时创建或删除角色和绑定。

Rook operator只能控制管理员授予的命名空间中的集群。operator不需要访问所有命名空间来管理秘密、pod和其他资源。

管理附加和安装存储的集群范围内的特权尽可能最小。管理员甚至可以确定在不需要安装存储的某些情况下特权不是必需的。例如,对象存储不需要这些特权。

即使安全模型有所改进,请记住,Rook仍然需要比普通应用程序更多的特权。运行存储平台需要使用特权模式、主机PID和主机网络访问硬件。随着时间的推移,当我们离开flex驱动程序,转向CSI并使用本地存储PVC而不是主机路径时,我们将削减这些特权。

Ceph CRD beta版

Rook通过Custom Resource Definition(CRD)和operator将Ceph带入Kubernetes的容器化和编排的世界,让存储成了Kubernetes的一等公民。 Rook的Ceph编排已经得到改进,我们很高兴宣布它处于beta。这证明了社区对帮助我们验证系统质量的支持。

这究竟意味着什么? 对我们来说,beta意味着:

对Ceph CRD的支持将从v0.8开始。不允许对CRD进行重大更改。从一个版本到下一个版本的升级将完全得到支持。

Ceph的Rook部署的质量已经提高到我们确信它们可以在生产场景中被信任的程度。

升级自动化将成为下一个里程碑的功能。将不再需要以前版本的繁琐手动升级指南。

这是让Rook的Ceph编排稳定的一个重要步骤。我们期待你的支持和反馈!

此版本中的Ceph operator还有许多其他改进,我们也会进行讨论。

提高OSD的可靠性

v0.8中最大的架构变化之一是Rook如何处理存储以创建存储网络。Rook在每个节点上编排存储的方式现在更可靠。

现在,operator可以完全控制你希望使用的存储设备并单独进行配置。这意味着许多不同的pod允许operator编排存储。每个OSD将独立运行,不受可能需要配置或重新启动的其他OSD的影响。OSD pod也被命名为与其OSD ID相对应,以便使用Ceph工具进行更轻松的故障排除。有关更改的更多详细信息,请参阅设计文档。

支持OpenShift

改进的声明性安全模型的一个好处是我们现在支持OpenShift。在声明所需的安全上下文约束以授予对运行有特权的访问主机PID和主机网络的访问权限之后,可以在OpenShift中运行。有了这些限制,Rook将像任何其他Kubernetes部署一样提供你的存储平台。

其他改进

除了上面描述的大功能之外,v0.8里程碑还有很多改进。总结一些显性的改进:

Ceph Dashboard默认启用,提供管理UI来查看Ceph存储集群的基本状态。

Ceph工具可用以便从Ceph pod运行,包括operator和mons。Ceph工具是管理底层存储集群的首选,而不是现在已被删除的rookctl工具和Rook API。

Ceph容器镜像现在基于CentOS 7而不是Ubuntu。

如果你想了解有关更改的更多详细信息,请浏览Github上v0.8里程碑页面上的完整列表。

下一步是什么?

随着Rook社区的蓬勃发展,前途充满希望。我们鼓励并欢迎大家与我们互动,共同指导社区的发展方向。你可以通过以下方式去我们取得联系:Rook网站、Github、推特、Slack、Youtube、电子邮件。