打算把openstack进行一个系统的学习,并对过程进行记录,希望对初学者有一定的帮助。
本系列主要是基于官方文档,所以会对官方文档做翻译和记录自己的理解。(虽然官方有中文文档,但版本较老,我是基于2019年的train版本进行学习)
一、引言
官方文档:https://docs.openstack.org/install-guide/preface.html
OpenStack系统由几个单独安装的关键服务组成。这些服务根据您的云需求协同工作,包括计算、身份、网络、图像、块存储、对象存储、遥测、编排和数据库服务。您可以单独安装这些项目中的任何一个,并将它们配置为独立的或连接的实体。
支持的操作系统
openSUSE 和 SUSE Linux Enterprise Server系统
在 openSUSE Leap 42.3, openSUSE Leap 15, SUSE Linux Enterprise Server 12 SP4, SUSE Linux Enterprise Server 15 系统中,可以通过Open Build Service Cloud repository 仓库来进行openstack的安装.
Red Hat Enterprise Linux 和 CentOS系统
可以通过 RDO repository仓库来进行安装.
Ubuntu系统
在Ubuntu 16.04 (LTS)系统中,可以通过Canonical’s Ubuntu Cloud archive repository仓库进行安装.
Ubuntu 18.04 LTS系统,可以直接安装。
二、openstack架构介绍
下图是opensatck的概念结构图
openstack的组件很多,以下列出主要的组件:
Keystone:提供集中认证服务。
Horizon:提供UI界面的集中管理服务。
Glance:提供镜像管理服务。
Neutron:提供网络连接服务。
Cinder:提供块存储服务。
Swift:提供对象存储服务。
Nova:提供虚拟机管理服务。
三、安装示例说明
官方文档:https://docs.openstack.org/install-guide/overview.html
示例架构需要至少两个节点(主机)来启动基本虚拟机或实例。块存储和对象存储等可选服务需要附加节点。
此示例架构与实际生产架构的区别如下:
- 网络代理驻留在控制器节点上,而不是一个或多个专用网络节点上。
- 自助服务网络的流量通过管理网络而不是专用网络。
上图是硬件需求示意,其中实线框代表核心组件(Core component),包括控制器节点(Controller Node)和计算节点(Compute Node)。虚线框代表可选组件,如块存储(block storage node)和对象存储(object storage node)。
组件说明
控制器节点运行标识服务、图像服务、放置服务、计算的管理部分、网络的管理部分、各种网络代理和仪表板。它还包括支持服务,如SQL数据库、消息队列和NTP。至少需要两个网络接口。
计算节点运行操作实例的管理程序。默认情况下,使用KVM管理程序。计算节点还运行一个网络服务代理,该代理将实例连接到虚拟网络,并通过安全组向实例提供防火墙服务。您可以部署多个计算节点。每个节点至少需要两个网络接口。
网络的配置有两种选择:
选择1:Provider networks(没找到合适的翻译,姑且按字面意思称为供应商网络),该网络配置简单,基于2层网络,使用网络交换和vlan等技术。与物理网络的连接通过路由来完成。
选择2:Self-service networks(自助服务网络),该网络是一种增强的网络,能使用如VXLAN技术来管理网络,也是一些高级服务(如LBAAS和FWaaS)的基础。
最低硬件要求
以下最低要求支持具有核心服务和多个CirrOS实例的理论环境:
控制节点:1cpu,4GB内存,5GB存储空间
计算节点:1cpu,2GB内存,10GB存储空间
操作系统:为了节约资源,推荐用最小安装,并且必须是64位
安全相关说明
官方文档:https://docs.openstack.org/install-guide/environment-security.html
为了简化安装过程,本指南仅适用于密码安全。虽然可以手动设置密码,但推荐使用如pwgen这样的工具来生成密码,或者执行下列命令:
$ openssl rand -hex 10
对于openstack的各种服务,本指南使用 SERVICE_PASS 代表账户密码,SERVICE_DBPASS 代表数据库密码。
下表提供了指南中需要的密码列表及其说明
密码名称 |
说明 |
---|---|
|
|
|
块存储服务cinder的数据库密码 |
|
块存储服务cinder的密码 |
|
控制台的数据库密码 |
|
|
|
镜像服务Glance的数据库密码 |
|
|
|
认证服务数据库密码 |
|
Secret for the metadata proxy |
|
网络服务 |
|
网络服务账户 |
|
计算服务Nova的数据库密码 |
|
计算服务账户 |
|
替换服务账户 |
|
RabbitMQ服务账户 |