Rook v1.0:支持 Nautilus 以及更多!
我们很高兴地宣布 Rook 达到了一个重要的里程碑……v1.0 版本已经发布!恭喜 Rook 社区为达成这个关键里程碑所做的所有努力。这是一个极好的版本,为 Ceph 带来了许多改进,巩固了它在 Kubernetes 集群中的生产使用。尽管这里有许多功能和错误修复,但以下是一些亮点。
Nautilus ¶
Nautilus 现在完全受此版本的 Rook 支持。所有内容都指向用户开始使用 Nautilus。示例部署将默认启动 Nautilus,并且支持从 Luminous 和 Mimic 升级。试用 Nautilus 版本的最新功能,所有这些都可以在您的 Kubernetes 集群内完成。
CSI 驱动程序 ¶
Ceph-CSI 驱动程序已经做了大量的工作,并且我们已经开始将其与 Rook 集成。有了 v1.0 版本,现在可以使用它来消耗集群中的存储。请参阅 Ceph CSI 主题来试用它,并告知我们您的反馈,因为我们正在逐步淘汰 Rook flex 驱动程序。
这只是将 CSI 驱动程序与 Rook 集成的第一阶段。我们的目标是 CSI 将由 Rook 自动处理,这样您就不必担心 CSI 驱动程序的配置。在我们完成下一个 Rook 版本中的这项工作之前,现在将 CSI 驱动程序视为实验性的。虽然有些人已经在生产中使用该驱动程序,但只要仍然需要手动配置,我们就不想将其标记为稳定。
动态操作 ¶
在此版本中,进行了一些重要的改进,使集群对添加存储节点或应用其他设置的响应速度更快。以前,在某些情况下,需要在重新启动操作符后才能应用新的配置,而我们旨在清理这种情况。现在,操作符将自动执行以下操作
- 当将节点添加到集群时,将根据需要自动配置 OSD。
- 当将设备附加到存储节点时,将根据需要自动配置 OSD。
- 对 CephCluster 资源(即 cluster.yaml)的任何更改都将触发集群配置。
我们知道集群在不断变化,因此我们不希望您每次集群发生变化时都担心配置。操作符将为您调整存储!
NFS ¶
随着 Nautilus 的发布,带来了对 NFS 的新支持。Rook 有一个新的自定义资源定义 (CRD),专门用于将 NFS 与 Ceph 一起使用。在创建 CephFS 文件系统 后,创建 NFS 自定义资源,以指示 Rook 启动 NFS 守护程序。立即试用 NFS,请按照 使用 Rook 部署 Ceph+NFS 的指南操作!
集群状态和监控 ¶
想知道由 Rook 部署的 Ceph 集群的状态吗?过去,您会启动 Rook 工具箱 并运行 ceph 命令来查找任何状态信息。虽然您可能仍然想偶尔启动工具箱,但操作符现在会定期查询 ceph 状态,并将其保存在 CephCluster 自定义资源中。要查看状态,集群中有一个新的“Health”列
$ kubectl -n rook-ceph get CephCluster rook-ceph NAME DATADIRHOSTPATH MONCOUNT AGE STATE HEALTH rook-ceph /var/lib/rook 3 5h27m Created HEALTH_OK
如果出现健康警告或错误,您可以在集群的“status”部分中监控完整详细信息
$ kubectl -n rook-ceph get CephCluster rook-ceph -o yaml ... status: ceph: health: HEALTH_WARN details: OSD_DOWN: message: 1 osds down severity: HEALTH_WARN lastChecked: 2019-05-01T19:42:30Z lastChanged: 2019-05-01T19:42:30Z previousHealth: HEALTH_OK
版本控制 ¶
最后一个小而有用的功能是,可以轻松识别集群中运行的 Rook 和 Ceph 版本。启动 Ceph 守护程序的所有部署都有 Rook 和 Ceph 的版本标签。您可以检查单个部署,使用“kubectl describe”,或者您可能会发现使用以下命令转储所有版本很有用
$ kubectl -n rook-ceph get deployments \ -o jsonpath='{range .items[*]}{.metadata.name}{" \trook="}{.metadata.labels.rook-version}{" \tceph="}{.metadata.labels.ceph-version}{"\n"}{end}'
rook-ceph-mds-myfs-a rook=v1.0.0 ceph=14.2.1 rook-ceph-mds-myfs-b rook=v1.0.0 ceph=14.2.1 rook-ceph-mgr-a rook=v1.0.0 ceph=14.2.1 rook-ceph-mon-a rook=v1.0.0 ceph=14.2.1 rook-ceph-osd-0 rook=v1.0.0 ceph=14.2.1 rook-ceph-rgw-my-store rook=v1.0.0 ceph=14.2.1
下一步 ¶
即使 Rook 已经取得了如此大的进步,我们仍然期待着未来的发展。Rook 路线图 中有 1.1 版本的初步功能草案。总而言之,优先级最高的项目包括
- CSI 驱动程序:如前所述,完成 CSI 驱动程序的集成是首要任务,以便在逐步淘汰 Rook flex 驱动程序的同时添加新功能。
- CephFS 配置仍然是关注的焦点,因为我们将 Kubernetes RWX 持久卷 (PV) 直接映射到 (新的) Ceph “子卷”概念,以实现与 Ceph Nautilus 的更紧密集成。
- 外部集群:我们最常要求的特性之一是能够连接到在单独的“外部”集群中运行的 Ceph 存储。无论 Rook 在外部 Kubernetes 集群中配置 Ceph,还是 Ceph 集群在裸机上运行,Rook 和 CSI 驱动程序都将启用 连接 到外部集群的能力。
- 改进的拓扑感知,用于 mon 放置和 CRUSH 地图支持,通过 Kubernetes 节点标签实现。
- 使用持久卷 (PV) 支持 OSD,以便在云环境中实现更动态的配置。
这些都是 Rook 部署 Ceph 的具体改进。现在再加上 Ceph 正在进行中的长期改进列表 正在进行中,坐下来享受旅程吧。
参与其中 ¶
我们对 Rook 社区的增长感到兴奋,并邀请所有需要存储的人参与其中。我们期待您的意见,以使该产品达到最佳状态。有很多方法可以参与其中
即将举行的活动 ¶
我们期待在不久的将来在各种活动中与您见面。 Cephalocon 巴塞罗那 日程(5 月 19-20 日)充满了展示 Ceph 和 Rook 正在进行的工作的演讲,随后是 Kubecon 巴塞罗那(5 月 21-23 日),其中有 四场 关于 Rook 的演讲。我们希望在那里见到您!