senlin服务简介
senlin服务简介
参考:https://docs.openstack.org/developer/senlin/overview.html
API:https://developer.openstack.org/api-ref/clustering/
服务定义
senlin服务基于OpenStack的集群服务。senlin通过调用OpenStack其他服务的API创建实例集群。
目标
使资源实例集群编排创建更简单。
工作原理
profile是senlin服务的基础配置,profile文件用来定义资源,cluster或者node在创建的时候从profile进行创建,解析profile后senlin调用OpenStack相关服务创建资源实例,并在senlin服务中进行管理。
伸缩能力的通过两种方式提供:
-
直接调用cluster的相关伸缩接口,包括以下几种:
- Resize a Cluster(POST /v1/clusters/{cluster_id}/actions)
- Scale-in a Cluster(POST/v1/clusters/{cluster_id}/actions)
- Scale-out a Cluster(POST/v1/clusters/{cluster_id}/actions)
-
用receiver对象接收伸缩请求
receiver创建成功后会生成alarm url地址,此地址即是出发cluster做操作的请求链接。所以此地址是私有的,像密码一样不可公开。
alarm url地址可以在创建aodh告警的时候设置为alarm的alarm_actions操作列表,一旦alarm触发告警,会自动向alarm_actions发送请求,达到自动伸缩的能力。
senlin服务相关组件
-
senlinclient
OpenStack所有服务组件都会对外提供命令行工具及client插件,senlinclient是openstackclient的插件,通过senlinclient用户可以直接使用命令行同senlin-api进行交互,简化用户操作。同时,senlinclient可以认为是调用senlinclient的python SDK,其他服务或者用户自己编写代码可以直接通过senlinclient访问senlin-api,极大的减少编码量。
-
senlin-dashboard
senlin-dashboard是Horizon的UI插件,通过senlin-dashboard提供给用户直接的界面操作。
-
senlin-api
提供OpenStack原生的REST API,接收用户请求,将请求通过RPC发送给senlin-engine处理,并将处理结果返回给API调用者。
-
senlin-engine
senlin服务的核心处理进程,所有的核心逻辑都在senlin-engine进行处理,创建和管理senlin所有的对象,包括profile、policy、cluster、node等。