Nautilus新特性: Orchestrator

 

Orchestrator可以翻译为协调器或编排器,但在本文中为更准确地表达依旧采用Orchestrator。

 

1. Orchestrator是什么?

Ceph的Nautilus版本引入了一个新的Orchestrator接口,它提供控制外部部署工具(如ceph-ansible、DeepSea或Rook)的能力。希望在管理员、Ceph和外部部署系统之间提供一个桥梁。为了实现这一点,Orchestrator接口允许Ceph仪表板或CEPH命令行工具访问不同部署工具提供的数据,从而在Ceph Dashboard中启用基础设施管理功能。作为副作用,它将为不同的部署工具带来统一的安装体验。

 

展示Rook Orchestrator部署ceph服务,请观看如下示例:

https://asciinema.org/a/240964/embed?

启用后,Dashboard会使用Orchestrator接口管理iSCSI目标和NFS共享。

 

从体系结构的角度来看,Orchestrator接口是控制面板、命令行接口和Rook管理器模块之间的三者中的核心组件。例如,如果用户调用命令行接口向集群添加新的OSD,那么Orchestrator模块将指示外部Orchestrator在指定主机上调用ceph-volume。

以下是Orchestrator的体系结构视图,显示了不同组件之间如何交互:

https://i2.wp.com/ceph.com/wp-content/uploads/2019/04/orchestrator.png?resize=619%2C251

2. 如何使用Orchestrator?

为了使用Orchestrator接口,CEPH集群需要与受支持的Orchestrator一起部署。要开始使用Orchestrator,只需要一个mon和一个mgr。

第二步是激活后端Orchestrator模块:

ceph mgr module enable <module>

ceph orchestrator set backend <module>

其中module是ansible、deepsea、rook或ssh.

 

之后,需要正确配置Orchestrator模块本身。有关每个模块的详细信息,请参见下文。另外,请注意,Orchestrator模块可能只实现下面列出的命令的一个子集,这些命令的实现依赖于Orchestrator模块,并且在实现之间会有所不同。

最后,您可以检查是否使用status命令正确配置了后端,该命令显示当前的Orchestrator模式和高级状态。

ceph orchestrator status

 

另一个有趣的命令是device ls,可以查看已发现设备的列表,按节点分组并选择性地筛选到特定节点:

ceph orchestrator device ls

有关Orchestrator命令行界面的更多示例,请参阅官方文档。

https://docs.ceph.com/docs/nautilus/mgr/orchestrator_cli/

 

3. Rook Orchestrator模块

Rook是云原生计算基金会(CNCF)的孵化级项目,Rook是Kubernetes的开源云本地存储协调器,为各种存储解决方案提供平台,框架和支持,以便与云原生环境本地集成。

Rook通过一个操作器(operator)完成后续操作,只需要定义需要的状态就可以了。Rook通过操作器监控状态需求变化,并将配置文件分配到集群上生效。操作器关注包括各种集群运行和启停所需的状态信息。

描述ceph所需状态的主要对象是CephCluster CRD,它(除其他外)包括OSD应使用哪些设备、应运行多少MON以及应使用哪个版本Ceph的信息。Rook定义了其他几个CRD来描述RBD池、CEHFS文件系统等。

 

Rook Orchestrator模块是运行在ceph mgr守护进程中的粘合器,通过更改kubernetes中描述所需集群状态的CephCluster(和相关)对象来实现ceph Orchestration API。因为rook集群的ceph-mgr守护进程作为kubernetes pod运行,所以rook模块可以连接到kubernetes API,而无需任何显式配置。

例如,如果用户请求通过cli提供新的OSD,那么Orchestrator模块将通过调整rook针对该集群的CephCluster crd对象来响应,以指定给定设备包含OSD,rook将通过对ceph-volume和sta进行适当的调用来响应。为ceph-osd守护进程发送一个kubernetes pod。

ceph orchestrator osd create ....

 

4.SSH Orchestrator模块

SSH Orchestrator 是一个编排器模块,不依赖于单独的编排/部署系统(如Rook或Ansible),而是通过建立SSH连接并使用显式管理命令来管理集群中的节点。

SSH Orchestrator模块在语意上等同于以前的Ceph部署工具(实际上是使用相同的remoto库通过SSH连接在远程机器上执行代码),但重点是,SSH Orchestrator是按照安装Ceph集群标准方法来设计的,而不需要使用任何部署框架(如Ansible)。

其思想是为管理守护进程提供对SSH配置和密钥的访问,这些配置和密钥能够连接到集群中的所有节点以执行任何管理操作,例如创建存储设备清单、部署和替换OSD,或启动和停止Ceph守护进程。

此外,SSH Orchestrator将部署由systemd管理的容器映像,以允许独立升级服务。

SSH Orchestrator还可能突出显示一个工具,它封装了所有必要的操作,以便在当前主机上管理基于容器映像的服务的部署,包括一个引导运行mon和mgr的最小集群的命令。

 

6. Ansible Orchestrator模块

Ansible Orchestrator模块使用Ansible Runner服务来执行Ansible Playbook,以满足支持的不同操作。当调用编排API时,Ansible模块将在Ansible Runner服务上对任务进行排队,然后执行Ansible Playbook以执行该工作。

 

7. Deepea Orchestrator模块

Deepea是用于部署和管理CEPH的Salt状态文件、运行程序和模块的集合。

此模块连接到Salt rest API,以便与Salt master通信。然后它可以查询集群的状态或发出命令。

 

8. 现有集成

Dashboard和Rook集成已经完成,具体请参考Jeff Layton以前关于用Rook配置NFS的博客文章。

https://ceph.com/community/deploying-a-cephnfs-server-cluster-with-rook/

 

9. 未来

现在,Orchestrator将重点放在初始安装之后的day-2集群操作上。在未来的版本中,正在计划添加对day-1安装和设置操作的支持。

其次,libstoragemgmt插件支持启用标记指定磁盘和故障指示灯。在Orchestrator接口中,正在进行支持这些功能的工作。

最后,加强Dashboard功能,包括集成硬件的编目控制和部署服务等功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值