👌 2021-05-06 OpenStack Wallaby 部署0 选型及整体介绍
FileInfo Filename - OpenStack Wallaby 部署简介 Version - v1.1.2105(2021/05/06 ~ 2021/05/11) Author - standuke Email - shadowdoker@gmail.com DescriptionKey - Introduction to OpenStack Wallaby deployment
版本修订记录:
v1.0.2105:2021-05-06:建立 OpenStack Wallaby 部署0 选型及整体介绍 文档,修订人:standuke v1.1.2105:2021-05-11:新增 OpenStack 简介、官方概念架构及逻辑架构配图、组件密码规划待下一版本修订,修订人:standuke
[TOC]
简介
https://docs.openstack.org/install-guide/openstack-services.html
OpenStack 是一个由 NASA「美国国家航空航天局」和 Rackspace 合作研发并发起的,以 Apache 许可证授权的自由软件和开放源代码项目。 OpenStack 是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack 支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack 通过各种互补的服务 - 即组件,提供了基础设施即服务「IaaS」的解决方案,每个服务提供 API 以进行集成。 OpenStack 是一个旨在为公共及私有云的建设与管理提供软件的开源项目。OpenStack 项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。
与前期版本差异
Wallaby,是 OpenStack 的第 23 个发行版,其对基于角色的访问控制「RBAC」进行了改进,并与其他开源项目「包括 Ceph,Kubernetes 和 Prometheus」集成,以增强用于云原生应用程序的开放基础架构。
- 基于角色的访问控制策略格式从 JSON 迁移到 YAML,使 OpenStack 与 Kubernetes 更加同步。
- OpenStack 内置了对开源 Ceph 后端驱动程序 Ceph iSCSI 的支持。除了其他新的 Cinder 存储驱动程序外,旧的驱动程序还增加了对新功能的支持,如恢复到快照和后端服务质量。
- Kolla 现在已经添加了对 Prometheus V2 的支持。
- Magnum API 服务已经更新了对 Kubernetes 和 containerd(一个标准的容器运行环境)的支持。
- 运营商可通过 Neutron 将网络端口中的固定 IP 地址路由到外部世界,而不受 IPv4 地址范围的限制。
参考资料: https://www.techrepublic.com/article/in-new-release-openstack-wallaby-reaches-out-to-kubernetes/
说明
- 此次部署 各个组件密码 在本文当中使用环境变量替代,具体使用的密码可见 组件密码规划 部分
- 组件部署完毕之后会有一个 里程碑 用于检验组件是否工作正常,组件工作正常后建议在开展之后的部署工作。
- 部署采用的是最小化部署 OpenStack,再逐渐扩充组件丰富功能,最终目标是能够实现一套满足生产环境的架构「只是架构,参数等配置优化有时间有心情再写」
部署方案
此次部署 OpenStack 版本为 Wallaby,发行「release」日期为 2021 年 4 月 21 日。 部署方案为,计算与存储分离,计算节点只负责计算,管理节点只负责管理调度、镜像存储,存储将采用 Ceph 作为底层存储平台,为前端计算节点虚拟机提供存储资源池。
部署资源规划
此次部署共使用 3 台物理服务器,对应的服务器角色如下
服务器名称 | 管理段 IP 地址 | 服务器配置 | 泛角色 | 操作系统 |
---|---|---|---|---|
node1.nuo.com | 192.168.2.11 | 64C256G | Controller | Ubuntu Server 20.04.2 LTS |
node2.nuo.com | 192.168.2.12 | 64C256G | Compute | Ubuntu Server 20.04.2 LTS |
node3.nuo.com | 192.168.2.13 | 64C256G | Storage | Ubuntu Server 20.04.2 LTS |
对于 在虚拟机环境部署 建议 3 台虚拟机「每台 4 核 8G 内存 60G 磁盘」或者 1 台虚拟机部署所有核心组件「配置 4 核 12G 内存 80G 磁盘」
操作系统
对于 Ubuntu LTS 于 Ubuntu 官网可见 Ubuntu 服务器的长期支持版本将包含 OpenStack。同样地,安全更新也将支持至 2025 年 4 月,仅限 64 位平台。 对于 OpenStack 官方文档中使用的 Ubuntu 20.04.2 LTS 作为底层操作系统。 目前 OpenStack 支持如下操作系统平台 可见官网 https://docs.openstack.org/install-guide/preface.html OpenStack Wallaby is available for CentOS Stream 8. OpenStack Ussuri and Victoria are available for both CentOS 8 and RHEL 8. OpenStack Train and earlier are available on both CentOS 7 and RHEL 7. 考虑到 CentOS 后期官方不再维护且支持周期较短,故此次部署不采用 CentOS 操作系统。
如下为 泛角色 内部对应的组件规划「如下组件能保证 OpenStack 能够正常提供基础服务,后期在部署完成后计划逐步添加容器等其他服务组件」
- Controller
- OpenStack 环境依赖「MariaDB、etcd、RocketMQ、Memcached」
- CINDER「后期使用 Ceph 替代」
- NEUTRON
- KEYSTONE
- PLACEMENT
- GLANCE「后期存储于 Ceph 上」
- HORIZON
- Compute
- NOVA
- NEUTRON
- Storage
- Ceph
如下为官方对于最小化部署 OpenStack 的组件要求
Minimal deployment for Wallaby
At a minimum, you need to install the following services. Install the services in the order specified below:
Identity service – keystone installation for Wallaby
Image service – glance installation for Wallaby
Placement service – placement installation for Wallaby
Compute service – nova installation for Wallaby
Networking service – neutron installation for Wallaby
We advise to also install the following components after you have installed the minimal deployment services:
Dashboard – horizon installation for Wallaby
Block Storage service – cinder installation for Wallaby
磁盘规划「测试环境」
node1「Controller」
root@node1:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 55.5M 1 loop /snap/core18/1997
loop1 7:1 0 67.6M 1 loop /snap/lxd/20326
loop2 7:2 0 69.9M 1 loop /snap/lxd/19188
loop3 7:3 0 31.1M 1 loop /snap/snapd/10707
loop4 7:4 0 55.4M 1 loop /snap/core18/1944
loop5 7:5 0 32.3M 1 loop /snap/snapd/11588
sda 8:0 0 1.1T 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 1.1T 0 part
└─ubuntu--vg-ubuntu--lv 253:0 0 200G 0 lvm /
sdb 8:16 0 5.5T 0 disk
root@node1:~# df -Th
Filesystem Type Size Used Avail Use% Mounted on
udev devtmpfs 126G 0 126G 0% /dev
tmpfs tmpfs 26G 2.3M 26G 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv ext4 196G 11G 176G 6% /
tmpfs tmpfs 126G 0 126G 0% /dev/shm
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs tmpfs 126G 0 126G 0% /sys/fs/cgroup
/dev/sda2 ext4 976M 200M 710M 22% /boot
/dev/loop0 squashfs 56M 56M 0 100% /snap/core18/1997
/dev/sda1 vfat 511M 7.9M 504M 2% /boot/efi
/dev/loop1 squashfs 68M 68M 0 100% /snap/lxd/20326
/dev/loop2 squashfs 70M 70M 0 100% /snap/lxd/19188
/dev/loop3 squashfs 32M 32M 0 100% /snap/snapd/10707
/dev/loop4 squashfs 56M 56M 0 100% /snap/core18/1944
/dev/loop5 squashfs 33M 33M 0 100% /snap/snapd/11588
tmpfs tmpfs 26G 0 26G 0% /run/user/0
root@node1:~#
node2「Compute」
root@node2:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 55.5M 1 loop /snap/core18/1997
loop1 7:1 0 55.4M 1 loop /snap/core18/1944
loop2 7:2 0 67.6M 1 loop /snap/lxd/20326
loop3 7:3 0 69.9M 1 loop /snap/lxd/19188
loop4 7:4 0 32.3M 1 loop /snap/snapd/11588
loop5 7:5 0 31.1M 1 loop /snap/snapd/10707
sda 8:0 0 5.5T 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 5.5T 0 part
└─ubuntu--vg-ubuntu--lv 253:0 0 5.5T 0 lvm /
root@node2:~# df -Th
Filesystem Type Size Used Avail Use% Mounted on
udev devtmpfs 126G 0 126G 0% /dev
tmpfs tmpfs 26G 2.3M 26G 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv ext4 5.5T 11G 5.2T 1% /
tmpfs tmpfs 126G 0 126G 0% /dev/shm
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs tmpfs 126G 0 126G 0% /sys/fs/cgroup
/dev/sda2 ext4 976M 200M 710M 22% /boot
/dev/loop0 squashfs 56M 56M 0 100% /snap/core18/1997
/dev/sda1 vfat 511M 7.9M 504M 2% /boot/efi
/dev/loop1 squashfs 56M 56M 0 100% /snap/core18/1944
/dev/loop2 squashfs 68M 68M 0 100% /snap/lxd/20326
/dev/loop3 squashfs 70M 70M 0 100% /snap/lxd/19188
/dev/loop5 squashfs 32M 32M 0 100% /snap/snapd/10707
/dev/loop4 squashfs 33M 33M 0 100% /snap/snapd/11588
tmpfs tmpfs 26G 0 26G 0% /run/user/0
root@node2:~#
node3「Storage」
root@node3:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 55.4M 1 loop /snap/core18/1944
loop1 7:1 0 55.5M 1 loop /snap/core18/1997
loop2 7:2 0 69.9M 1 loop /snap/lxd/19188
loop3 7:3 0 31.1M 1 loop /snap/snapd/10707
loop4 7:4 0 67.6M 1 loop /snap/lxd/20326
loop5 7:5 0 32.3M 1 loop /snap/snapd/11588
sda 8:0 0 1.1T 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 1.1T 0 part
└─ubuntu--vg-ubuntu--lv 253:0 0 1.1T 0 lvm /
sdb 8:16 0 1.1T 0 disk
sdc 8:32 0 1.1T 0 disk
sdd 8:48 0 1.1T 0 disk
root@node3:~# df -Th
Filesystem Type Size Used Avail Use% Mounted on
udev devtmpfs 126G 0 126G 0% /dev
tmpfs tmpfs 26G 2.6M 26G 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv ext4 1.1T 11G 1.1T 2% /
tmpfs tmpfs 126G 0 126G 0% /dev/shm
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs tmpfs 126G 0 126G 0% /sys/fs/cgroup
/dev/sda2 ext4 976M 200M 710M 22% /boot
/dev/sda1 vfat 511M 7.9M 504M 2% /boot/efi
/dev/loop0 squashfs 56M 56M 0 100% /snap/core18/1944
/dev/loop1 squashfs 56M 56M 0 100% /snap/core18/1997
/dev/loop2 squashfs 70M 70M 0 100% /snap/lxd/19188
/dev/loop3 squashfs 32M 32M 0 100% /snap/snapd/10707
/dev/loop5 squashfs 33M 33M 0 100% /snap/snapd/11588
/dev/loop4 squashfs 68M 68M 0 100% /snap/lxd/20326
tmpfs tmpfs 26G 0 26G 0% /run/user/0
root@node3:~#
部署网络规划
网段规划
此次采用官方「Networking Option 2: Self-service networks」自主管理网络
- 管理段 192.168.2.0/24
即相对于云服务商的内网环境,此次环境管理段与公网相通,用于部署安装调试,同时管理段与服务器 BMC 相通,便于调试
- 业务段 192.168.10.0/24
即相对于云服务商的外网环境,用户客户访问云服务
网络架构
此次部署采用「Self-service networks」网络架构
- 下图来自官方对于 Provider networks 的组件部署架构
- 下图来自官方对于 Self-service networks 的组件部署架构
可见对于 Option 1 来说 Self-service networks
网络架构多了 L3 Agent
也就是多了,三层网络的路由功能,通过路由协议将虚拟网络与外界打通。
组件密码规划
组件名称 | 用户名 | 密码 | 环境变量名称 |
---|---|---|---|
MariaDB「MySQL」 | root | 1212 | MARIADB_PASS |
RabbitMQ | openstack | OPENSTACK | RABBIT_PASS |
keystone | keystone | KEYSTONE | KEYSTONE_DBPASS |
glance | glance | GLANCE | GLANCE_DBPASS |
keystone | keystone | KEYSTONE | KEYSTONE_DBPASS |
keystone | keystone | KEYSTONE | KEYSTONE_DBPASS |
keystone | keystone | KEYSTONE | KEYSTONE_DBPASS |
keystone | keystone | KEYSTONE | KEYSTONE_DBPASS |
keystone | keystone | KEYSTONE | KEYSTONE_DBPASS |
附录
架构
- 如下为 OpenStack 各个组件之间的关系「概念架构」
https://docs.openstack.org/install-guide/get-started-conceptual-architecture.html
- 如下为一种云的组织架构图「逻辑架构」
https://docs.openstack.org/install-guide/get-started-logical-architecture.html
组件介绍
==OpenStack Services「OpenStack 服务」==
OpenStack 部署包含许多组件,这些组件提供用于访问基础结构资源的 API。如下列出了可以部署以向云最终用户提供此类资源的各种服务。
Compute「计算资源」
NOVA - Compute Service「计算服务」 ZUN - Containers Service「容器服务」
Hardware Lifecycle「硬件生命周期」
IRONIC - Bare Metal Provisioning Service「裸机配置服务」 CYBORG - Lifecycle management of accelerators「加速器的生命周期管理」
Storage「存储」
SWIFT - Object store「对象存储」 CINDER - Block Storage「块存储」 MANILA - Shared filesystems「共享文件系统」
Networking「网络」
NEUTRON - Networking「网络」 OCTAVIA - Load balancer「负载均衡」 DESIGNATE - DNS service「DNS 服务」
Shared Services「共享服务」
KEYSTONE - Identity service「身份认证服务」 PLACEMENT - Placement service「服务安置服务」 GLANCE - Image service「镜像服务」 BARBICAN - Key management「密钥管理服务」
Orchestration
HEAT - Orchestration「编排」 SENLIN - Clustering service「集群服务」 MISTRAL - Workflow service「工作流服务」 ZAQAR - Messaging Service「消息服务」 BLAZAR - Resource reservation service「资源预约服务」 AODH - Alarming Service「报警服务」
Workload Provisioning
MAGNUM - Container Orchestration Engine Provisioning「容器编排配置引擎」 SAHARA - Big Data Processing Framework Provisioning「大数据处理框架配置」 TROVE - Database as a Service「数据库即服务」
Application Lifecycle
MASAKARI - Instances High Availability Service「实例高可用性服务」 MURANO - Application Catalog「应用目录」 SOLUM - Software Development Lifecycle Automation「软件开发生命周期自动化」 FREEZER - Backup, Restore, and Disaster Recovery「备份,还原和灾难恢复」
API Proxies
EC2API - EC2 API proxy「EC2 API代理」
Web Frontend
HORIZON - Dashboard「仪表盘」
==Operations tooling「运维工具」==
这些服务提供主要针对云管理员和部署者的API,以帮助进行云操作。
Monitoring services「监控服务」
CEILOMETER - Metering & Data Collection Service「计量和数据收集服务」 PANKO - Event, Metadata Indexing Service「事件,元数据索引服务」 MONASCA - Monitoring「监控」
Resource optimization「资源优化」
WATCHER - Optimization Service「优化服务」 VITRAGE - Root Cause Analysis service「根本原因分析服务」
Billing / Business Logic「计费 / 业务逻辑」
ADJUTANT - Operations processes automation「运营流程自动化」 CLOUDKITTY - Billing and chargebacks「帐单和退款」
Testing / Benchmark
RALLY - Benchmarking tool「跑分工具标杆管理工具」 TEMPEST - The OpenStack Integration Test Suite「OpenStack集成测试套件」 PATROLE - The OpenStack RBAC Integration Test Suite「OpenStack RBAC集成测试套件」
==Add-Ons to Services「附加服务」==
该软件可以作为其他 OpenStack 服务的附件或插件运行。
Swift 附加组件
STOR - Computable object storage「可计算对象存储」
==Integration enablers「其他系统整合」==
本节中的软件有助于将 OpenStack 组件集成到相邻的开放基础架构堆栈中。
Containers「容器」
KURYR - OpenStack Networking integration for containers「容器的OpenStack网络集成」
NFV
TACKER - NFV Orchestration「NFV编排」