本节我们通过一个“跑”在Kubernetes上的社区项目Rook来介绍一下存储系统如何借助Kubernetes来简化存储系统本身的运维。Rook是专用于云原生环境的文件、块、对象存储服务,它依赖Kubernetes实现了一个可以自我管理、自我扩容和自我修复的分布式存储服务。支持自动部署、启动、配置、分配、扩容、缩容、升级、迁移、灾难恢复、监控,以及资源管理等功能,并通过FlexVolume卷插件扩展Kubernetes的存储系统。Pod可以挂载Rook管理的块设备或者文件系统。
Rook与Kubernetes的交互关系如图10-6所示。

图10-5 管控组件容器化部署

图10-6 Rook与Kubernetes的交互关系
像Rook这种以服务的方式寄生在容器编排系统上,并为编排系统上运行的容器化应用提供基础存储服务的做法,可大幅降低存储系统自身的运维成本,对以后存储系统的演进也是很好的参考对象。