OpenStack 项目是一个开源云计算平台,它支持各种类型的云环境。该项目旨在实现简单的部署、大规模的可伸缩性和丰富的特性集。来自世界各地的云计算专家为这个项目做出了贡献。
OpenStack 通过各种互补性服务提供基础设施即服务(IaaS)解决方案。每个服务都提供一个应用程序编程接口(API),以促进集成。
本指南介绍了使用功能示例架构逐步部署主要的 OpenStack 服务,该架构适用于具有足够 Linux 经验的 OpenStack 的新用户。本指南不打算用于生产系统安装,而是为了学习 OpenStack 而创建一个最小概念验证。
在熟悉了这些 OpenStack 服务的基本安装、配置、操作和故障排除之后,您应该考虑以下步骤,使用一个生产体系结构:
- 确定并执行必要的核心和可选服务以满足性能和冗余要求。
- 使用防火墙、加密和服务策略等方法提高安全性。
- 实施一个部署工具,如 Ansible、Chef、Puppet 或 Salt,以自动部署和管理生产环境。
示例架构
示例架构需要至少两个节点(主机)来启动一个基本的虚拟机或实例。可选的服务,如块存储和对象存储,需要额外的节点。
本指南中使用的示例架构是一个最小配置,并不是用于生产系统安装。它旨在为学习 OpenStack 提供一个最小概念验证。有关为特定用例创建架构的信息,或者如何确定需要哪种架构,请参阅架构设计指南。
这个示例架构与最小的生产架构有以下不同:
- 网络代理驻留在控制器节点上,而不是一个或多个专用网络节点。
- Overlay(隧道)自服务网络的流量流经管理网络而不是专用网络。
有关生产架构的更多信息,请参阅架构设计指南、OpenStack 操作指南和
OpenStack 网络指南。
硬件需求
Controller
控制器节点运行身份认证服务、镜像服务、计算的管理部分、网络的管理部分、各种网络代理和仪表板。它还包括支持服务,如 SQL 数据库、消息队列和 NTP。
控制器节点可选择性地运行部分块存储、对象存储、编排和计量服务。
控制器节点需要至少两个网络接口。
Compute
计算节点运行计算的管理程序部分,该部分运行实例。默认情况下,Compute 使用 KVM 管理程序。计算节点还运行一个网络服务代理,它将实例连接到虚拟网络,并通过安全组向实例提供防火墙服务。
您可以部署多个计算节点,每个节点需要至少两个网络接口。
Block Storage
可选的块存储节点包含用于实例的块存储和共享文件系统服务的磁盘。
为了简单起见,计算节点和该节点之间的服务流量使用管理网络。生产环境应该实现一个单独的存储网络来提高性能和安全性。
您可以部署多个块存储节点,每个节点需要至少一个网络接口。
Object Storage
可选对象存储节点包含用于存储帐户、容器和对象的对象存储服务使用的磁盘。
为了简单起见,计算节点和该节点之间的服务流量使用管理网络。生产环境应该实现一个单独的存储网络来提高性能和安全性。
该服务需要两个节点。每个节点需要至少一个网络接口。可以部署更多的对象存储节点。
Networking
选择下列虚拟网络选项之一。
Networking Option 1: Provider networks
provider networks 选项以最简单的方式部署 OpenStack 网络服务,主要是使用二层(桥接/交换)服务和网络 VLAN 分割。从本质上讲,它将虚拟网络与物理网络连接起来,并依靠物理网络基础设施来提供3层(路由)服务。另外,DHCP 服务为实例提供 IP 地址信息。
这个选项缺少对自助服务(私有)网络、3层(路由)服务和高级服务(如 LBaaS 和 FWaaS)的支持。如果您想要这些特性,可以考虑下面的
self-service networks 网络选项。
Networking Option 2: Self-service networks
self-service networks 网络选项增强了 provider networks 网络选项,使用
3 层(路由)服务,使用 overlay 的方法(如 VXLAN)启用自助服务网络。从本质上讲,它通过 NAT 将虚拟网络路由到物理网络,此外,该选项还为 LBaaS 和 FWaaS 等高级服务提供了基础。