OpenStack本身是一个分布式系统,不仅各服务可以分布部署,服务中的各个组件也可以分布部署。龚总组成一个庞大的Openstack。

基础架构

  1. ![image.png](https://cdn.nlark.com/yuque/0/2020/png/546986/1589544739913-aedf3542-09a7-4851-b880-e5945028ca1d.png#align=left&display=inline&height=216&margin=%5Bobject%20Object%5D&name=image.png&originHeight=377&originWidth=864&size=86760&status=done&style=none&width=493)

在这里,OpenStack为虚拟机提供并管理的三大资源类型:计算,网络,存储。
需要注意的是,OpenStack提供资源接口(APIs)展示到web界面上

核心架构

image.png

核心服务:

Keystone:认证服务,为各种服务提供认证和权限管理服务
Glance:镜像服务,管理VM启动时的镜像
Nova:计算服务,管理VM的生命周期(创建删除暂停虚拟机)
Neutron:网络服务,网络服务,提供网络连接服务,负责为VM创建L2和L3网络
(L2:虚拟交换机;L3:虚拟路由器)
Cinder:块存储服务,Cinder的每一个Volume对于VM都像一块Disk
Swift:对象存储服务,VM通过Restful API存储对象数据(可选)

可选服务:

Ceilometer:监控计量服务,为报警、统计或计费提供数据
Heat:编排服务,管理编排资源,完成编排任务
Horizon:为Openstack用户提供一个Web的自服务Portal
Telemetry:收集服务,对计量数据进行服务
Trove:数据库服务,将数据库引擎提供到云上
Zun:管理容器的生命周期

问题:

  1. 服务之间如何通信??restful api
  2. 服务组件和组件之间如何通信的??消息队列(queue)