目录
一、OpenStack
1、简介
官网:https://docs.openstack.org/2023.2/
OpenStack系统由几个关键服务组成,它们可以单独安装。这些服务根据你的云需求工作在一起。这些服务包括计算服务、认证服务、网络服务、镜像服务、块存储服务、对象存储服务、计量服务、编排服务和数据库服务。您可以独立安装这些服务、独自配置它们或者连接成一个整体。
2、硬件需求
控制器
控制节点上运行身份认证服务,镜像服务,计算服务的管理部分,网络服务的管理部分,多种网络代理以及仪表板。也需要包含一些支持服务,例如:SQL数据库,term:消息队列, and NTP。
可选的,可以在计算节点上运行部分块存储,对象存储,Orchestration 和 Telemetry 服务。
计算节点上需要至少两块网卡。
计算
计算节点上运行计算服务中管理实例的管理程序部分。默认情况下,计算服务使用 KVM。
你可以部署超过一个计算节点。每个结算节点至少需要两块网卡。
块设备存储
可选的块存储节点上包含了磁盘,块存储服务和共享文件系统会向实例提供这些磁盘。
为了简单起见,计算节点和本节点之间的服务流量使用管理网络。生产环境中应该部署一个单独的存储网络以增强性能和安全。
你可以部署超过一个块存储节点。每个块存储节点要求至少一块网卡。
对象存储
可选的对象存储节点包含了磁盘。对象存储服务用这些磁盘来存储账号,容器和对象。
为了简单起见,计算节点和本节点之间的服务流量使用管理网络。生产环境中应该部署一个单独的存储网络以增强性能和安全。
这个服务要求两个节点。每个节点要求最少一块网卡。你可以部署超过两个对象存储节点。
3、网络
从下面的虚拟网络选项中选择一种选项。
网络选项1:公共网络
公有网络选项使用尽可能简单的方式主要通过layer-2(网桥/交换机)服务以及VLAN网络的分割来部署OpenStack网络服务。本质上,它建立虚拟网络到物理网络的桥,依靠物理网络基础设施提供layer-3服务(路由)。额外地 ,:term:`DHCP`为实例提供IP地址信息。
注解
这个选项不支持私有网络,layer-3服务以及一些高级服务,例如:term:LBaaS and FWaaS。如果你需要这些服务,请考虑私有网络选项
网络选项2:私有网络
私有网络选项扩展了公有网络选项,增加了启用 self-service`覆盖分段方法的layer-3(路由)服务,比如 :term:`VXLAN 。本质上,它使用 :term:`NAT`路由虚拟网络到物理网络。另外,这个选项也提供高级服务的基础,比如LBaas和FWaaS。
二、环境搭建
以下最小需求支持概念验证环境,使用核心服务和几个:term:`CirrOS`实例:
-
控制节点: 1 处理器, 4 GB 内存, 及5 GB 存储
-
计算节点: 1 处理器, 2 GB 内存, 及10 GB 存储
由于Openstack服务数量以及虚拟机数量的正常,为了获得最好的性能,我们推荐你的环境满足或者超过基本的硬件需求。如果在增加了更多的服务或者虚拟机后性能下降,请考虑为你的环境增加硬件资源。
为了避免混乱和为OpenStack提供更多资源,我们推荐你最小化安装你的Linux发行版。同时,你必须在每个节点安装你的发行版的64位版本。
每个节点配置一个磁盘分区满足大多数的基本安装。但是,对于有额外服务如块存储服务的,你应该考虑采用 :term:`Logical Volume Manager (LVM)`进行安装。
|-------|---------------|------------------|
| 主机 | ip | 角色 |
| open | 192.168.67.51 | controller(控制节点) |
| open1 | 192.168.67.52 | compute1(计算节点) |
| open2 | 192.168.67.53 | block1(块存储节点) 可选 |
1、安全
openssl rand -hex 10
密码名称 | 描述 |
---|---|
数据库密码(不能使用变量) | 数据库的root密码 |
ADMIN_PASS | admin 用户密码 |
CEILOMETER_DBPASS | Telemetry 服务的数据库密码 |
CEILOMETER_PASS | Telemetry 服务的 ceilometer 用户密码 |
CINDER_DBPASS | 块设备存储服务的数据库密码 |
CINDER_PASS | 块设备存储服务的 cinder 密码 |
DASH_DBPASS | Database password for the dashboard |
DEMO_PASS | demo 用户的密码 |
GLANCE_DBPASS | 镜像服务的数据库密码 |
GLANCE_PASS | 镜像服务的 glance 用户密码 |
HEAT_DBPASS | Orchestration服务的数据库密码 |
HEAT_DOMAIN_PASS | Orchestration 域的密码 |
HEAT_PASS | Orchestration 服务中``heat``用户的密码 |
KEYSTONE_DBPASS | 认证服务的数据库密码 |
NEUTRON_DBPASS | 网络服务的数据库密码 |
NEUTRON_PASS | 网络服务的 neutron 用户密码 |
NOVA_DBPASS | 计算服务的数据库密码 |
NOVA_PASS | 计算服务中``nova``用户的密码 |
RABBIT_PASS | RabbitMQ的guest用户密码 |
SWIFT_PASS | 对象存储服务用户``swift``的密码 |
[密码:] |
2、主机网络
配置网络接口:
修改网卡名称(为了保持一致,后面不会出错)
cd /boot/grub2/
vim grub.cfg
net.ifnames=0
然后重启
将第一个接口配置为管理网络接口
mv ifcfg-ens33 ifcfg-eth0
vim ifcfg-eth0
提供者网络接口使用一个特殊的配置,不分配给它IP地址。配置第二块网卡作为提供者网络
cp ifcfg-eth ifcfg-ethl
vim ifcfg-eth1
配置域名解析
设置节点主机名为 controller。
编辑 /etc/hosts 文件
3、网络时间协议(NTP)
安全并配置组件
安装软件包:
yum install chrony
编辑 /etc/chrony.conf 文件 (使用aliyun的)
vim /etc/chrony.conf
完成
其他节点一致
4、OpenStack包
提前准备好的源
放在/opt/
配置软件仓库
cd /etc/yum.repos.d/
vim openstack.repo
[openstack]
name=mitaka
baseurl=file:///opt/mitaka
gpgcheck=0
在主机上升级包:
yum upgrade
安装 OpenStack 客户端:
yum install python-openstackclient
5、SQL数据库
大多数 OpenStack 服务使用 SQL 数据库来存储信息。 典型地,数据库运行在控制节点上。指南中的步骤依据不同的发行版使用MariaDB或 MySQL。OpenStack 服务也支持其他 SQL 数据库
SQL数据库配置组件
安装软件包:
yum install mariadb mariadb-server python2-PyMySQL
创建并编辑
vim /etc/my.cnf.d/openstack.cnf
[mysqld]
bind-address = 192.168.67.51
default-storage-engine = innodb
innodb_file_per_table
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8
完成安装
systemctl enable --now mariadb.service
初始化
mysql_secure_installation
6、消息队列
OpenStack 使用 message queue 协调操作和各服务的状态信息。消息队列服务一般运行在控制节点上。OpenStack支持好几种消息队列服务包括 RabbitMQ, Qpid, 和 ZeroMQ。不过,大多数发行版本的OpenStack包支持特定的消息队列服务。
安全并配置组件:
yum install rabbitmq-server
systemctl enable --now rabbitmq-server.service
rabbitmqctl add_user openstack openstack
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
打开rabbitmq management 模块 访问15672接口
rabbitmg-plugins list
rabbitmq-plugins enable rabbitmq management
netstat -antlp
账号密码guest
7、Memcached
认证服务认证缓存使用Memcached缓存令牌。缓存服务memecached运行在控制节点。在生产部署中,我们推荐联合启用防火墙、认证和加密保证它的安全。
安装:
yum install memcached python-memcached
配置:
启动Memcached服务,并且配置它随机启动。