服务组件介绍
介绍平台核心组件的架构和功能。
架构简介
Cloudpods 服务组件较多,接下来分别介绍每个组件的功能:
服务组件 | 功能用途 |
---|---|
keystone | 认证权限管理 |
region | 多云资源控制器 |
scheduler | 资源调度器 |
glance | 虚拟机镜像管理 |
host | 私有云虚拟机管理 |
baremetal | 私有云物理机管理 |
esxi-agent | vmware esxi 实例管理 |
lb-agent | 私有云负载均衡 |
webconsole | 提供 vnc, ssh 访问 |
logger | 记录审计日志 |
apigateway | api 网关,能通过该服务访问后端所有 api |
climc | 命令行管理工具 |
组件架构见下图,分为接入层,控制层和资源层三个主要部分。
接入层
接入层实现云管平台的访问功能,允许用户通过如下3种方式访问云管平台的功能:
-
API访问: 通过REST API访问云管平台功能,用户可以直接通过http接口访问云管平台的REST API,也可以使用云管平台提供的SDK。目前SDK支持Java,Python和Golang等三种语言。
-
命令行访问: 通过云管平台提供的climc命令行工具访问云管平台功能,允许用户通过脚本调用climc,实现一些自动化运维功能。Climc使用Golang语言,基于云管平台的Golang SDK开发。
-
Web控制台访问: 通过Web UI访问云管平台的功能。允许用户通过主流web浏览器访问云管平台。Web控制台提供管理员使用的管理后台以及普通用户使用的普通功能页面,能够提供大部分的管理和使用功能。Web控制台基于Vue 2.0 JavaScript SPA框架实现。
控制层
-
控制层实现云管平台的管理和控制功能。主要由API网关,认证服务,镜像服务,云控制器和调度器,以及 webconsole vnc, ssh 代理服务等组件构成。
-
API网关提供Web控制台对各个服务的统一REST API访问接口。实现Web控制台的登录验证,session 控制,以及对后端各个服务的API调用。API网关由Golang完全自主开发,完全无状态架构,具备水平扩展能力。
-
认证服务提供平台的账户管理和认证体系,并提供基于项目的多租户支持,同时提供服务目录功能。认证服务支持多种认证源,允许和企业的LDAP/AD对接,允许用户以企业统一的账户体系登入系统。认证服务2.10之前版本基于OpenStack Keystone Pika版本,开发语言为Python。在开源版本基础上,我们修正了BUG,并做了若干改进。2.10之后版本采用golang语言开发。Keystone采用无状态架构,支持水平扩展,可以水平拆分实现服务高可用。
-
镜像服务提供云管平台各种主机资源的操作系统镜像的管理功能。提供镜像存储,元数据管理等功能。镜像服务1.x版本基于OpenStack Glance Folsom版本改进而来,开发语言为Python。在开源版本基础上,我们修正了BUG,并做了若干改进。2.x版本采用golang语言开发。Glance采用无状态架构,支持水平扩展,可以水平拆分实现服务高可用。
-
云控制器是整个云管平台的中枢,负责机房网络,宿主机,网络,存储,虚拟机等各类资源的元数据信息管理,以及对虚拟机,裸机等的自动化管理操作认证的调度,协调管理。云控制器内置基于REST API接口的分布式异步任务管理框架,实现对在计算节点进行的开关机,创建删除等耗时操作任务的管理协调工作。云控制器完全自主开发,云控制器采用无状态架构,可以水平扩展,通过水平拆分实现高可用。
-
调度器负责云管平台资源调度功能,是云管平台中资源获取决策的唯一执行者,根据用户对资源的要求,给出资源的最优提供者。调度器支持批量调度,调度性能优异,可扩展性好。调度器完全自主开发,基于Golang语言开发。
资源层
- 资源层实现对KVM虚拟机,裸机,VMWare虚拟机等计算资源的管理 和控制功能。云管平台目前主要支持对KVM虚拟机,裸机,VMWare虚拟机,常用私有云openstack, zstack 以及公有云阿里云,Azure,腾讯云,AWS等公有云资源的管理。