OpenStack 集群搭建

本文档使用 3 台主机搭建 OpenStack 集群,3 台均为控制节点。

配置 id 地址和主机名

controller 192.168.2.20

controller1 192.168.2.21

controller2 192.168.2.22

controller3 192.168.2.23

配置 hosts

[all]

echo '
192.168.2.20    controller
192.168.2.21    controller1
192.168.2.22    controller2
192.168.2.23    controller3
' >> /etc/hosts

cat /etc/hosts

设置主机名

[controller1]

[controller2]

[controller3]

配置本地源

[all]

防火墙放行

个节点主机相互放行

[all]

配置 controller1 免密登录其他节点

[controller1]

SELINUX

更改 SELinux 运行模式

[all]

OpenStack packages

启用 OpenStack 源,安装 Openstack Clinet,Openstack Utils,openstack-selinux,更新软件包并重启服务器。

[all]

Network Time Protocol (NTP)

设置时区

[all]

在个节点安装chrony设置开机自启并启动。

[all]

Pacemaker

安装软件包

安装软件包,设置开机自启并启动。

[all]

创建集群

设置pcs所需的身份验证

[all]

[controller1]

创建集群

[controller1]

设置自启并启动集群

[controller1]

设置群集选项

[controller1]

创建 vip

[controller1]

查看集群状态

[controller1]

Haproxy

安装软件包

[all]

修复配置文件

[all]

配置内核参数以允许非本地 IP 绑定

[all]

将 HAProxy 添加到群集并确保 VIP 只能在 HAProxy 处于活动状态的计算机上运行

[controller1]

防火墙放行

[all]

验证

浏览器访问: http://192.168.2.20:8888/admin 用户名:admin 密码:123456

MariaDB Galera Cluster

安装软件包

[all]

配置数据库

controller1节点对数据进行安全配置。

[controller1]

修改配置文件

[controller1]

[controller2]

[controller3]

启动集群

[controller1]

[other]

[all]

验证集群

连接数据库,查询集信息

配置 Haproxy

创建haproxy用户。

[controller1]

修改 haproxy 配置文件

[all]

重启haproxy

[controller1]

验证 Haproxy

连接 vip 地址数据库

[all]

RabbitMQ Cluster

安装软件包

[all]

配置监听 IP

[controller1]

[controller2]

[controller3]

单个节点启动,并将 cookie 负责给其他节点

[controller1]

在其它节点,修改 cookie 文件所有者及权限,设置 rabbitmq 开机自启并启动

[other]

除第一个节点外,在每个节点上运行以下命令

[other]

验证节点是否正在运行

要确保在所有正在运行的节点上镜像除具有自动生成的名称的队列之外的所有队列,请ha-mode通过在其中一个节点上运行以下命令将策略密钥设置为 all:

[controller1]

创建openstack用户并设置权限。 [controller1]

验证

[all]

Memcached

安装软件包

[all]

修改配置文件

[controller1]

[controller2]

[controller3]

设置开机自启并启动

[all]

Identity service

配置数据库

在单个节点操作即可。

[controller1]

使用数据库访问客户端以root用户身份连接到数据库服务器 :

创建keystone数据库,授予对keystone数据库的适当访问权限,刷新权限并退出:

安装配置

安装软件包

[ALL]

修改配置文件

[all]

初始化数据库

[controller1]

初始化 Fernet 密钥存储库

[controller1]

拷贝 Fernet 密钥存储库

[controller1]

设置 Fernet 密钥存储库文件权限

[all]

引导身份服务

[controller1]

配置wsgi-keystone.conf和httpd.conf

[controller1]

[controller2]

[controller3]

创建wsgi-keystone.conf链接

[all]

设置开机自启并启动

[all]

配置 Haproxy

修改 haproxy 配置

[ALL]

重启haproxy

[controller1]

创建域,项目,用户和角色

[controller1]

配置管理帐户

创建service 项目

创建demo项目

创建demo用户

创建user角色

user角色添加到demo项目和用户

请禁用临时身份验证令牌机制

[all]

创建脚本

[all]

admin 脚本

demo 脚本

验证

[all]

Ceph Cluster

创建 ceph 用户cephuser,并设置免密 sudo 权限

[all]

拷贝密钥

[controller1]

创建部署临时文件目录

[controller1]

安装部署工具 ceph-deploy

[controller1]

清理环境

[controller1]

创建集群

[controller1]

安装软件包

[all]

初始 monitor(s)、并收集所有密钥

[controller1]

创建 OSD

[controller1]

Image service

配置数据库

[controller1]

连接数据库

创建glance数据库,授予对glance数据库的适当访问权限,刷新权限并推出。

创建用户,服务实体和端点

[controller1]

加载 admin 环境变量

创建glance用户

admin角色添加到glance用户和 service项目

创建glance服务实体

创建 Image 服务 API 端点

安装和配置组件

安装软件包

[all]

配置/etc/glance/glance-api.conf

[all]

[controller1]

[controller2]

[controller3]

配置/etc/glance/glance-registry.conf

[ALL]

[controller1]

[controller2]

[controller3]

填充数据库

[controller1]

设置开机自启并启动

[all]

配置 Haproxy

修改 haproxy 配置

[all]

重启haproxy

[controller1]

配置 ceph 存储

创建 images 池

[controller1]

创建 Glance 用户

[controller1]

client.glance 的密钥环复制到适当的节点,并更改所有权

[controller1]

配置/etc/glance/glance-api.conf

[all]

重启服务

[all]

验证

[controller1]

获取 admin 环境

下载 cirros 镜像

上传镜像

查看镜像列表

Compute Service

配置数据库

[all]

连接数据库

创建nova_apinova数据库,授予对数据库的适当访问权限,刷新权限并退出。

创建用户,服务实体和端点

[controller1]

获取 admin 环境变量

创建nova用户

admin角色添加到nova用户

创建nova服务实体

创建 Compute 服务 API 端点

安装配置控制部分

安装软件包

[ALL]

配置/etc/nova/nova.conf

[ALL]

[controller1]

[controller2]

[controller3]

填充数据库

[controller1]

设置服务开机自启并启动

[all]

配置 Haproxy

[all]

配置 haproxy 配置文件

重启haproxy

[controller1]

防火墙放行

[all]

安装配置计算部分

安装软件包

[all]

配置/etc/nova/nova.conf

[all]

[controller1]

[controller2]

[controller3]

使用 qemu 虚拟类型

执行上面命令,结果为 0,需要设置如下

设置开机自启并启动

[all]

验证

[all]

获取 admin 环境变量

获取compute服务列表

Networking Service

配置数据库

[controller1]

连接数据库

创建neutron数据库,授予对数据库的适当访问权限,刷新权限并退出。

创建用户,服务实体和端点

[controller1]

获取 admin 环境变量

创建neutron用户

admin角色添加到neutron用户

创建neutron服务实体

创建 Networking 服务 API 端点

配置 Haproxy

[all]

配置 haproxy 配置文件

重启haproxy

[controller1]

安装配置控制部分

配置私有网络类型

[all]

安装软件包

配置neutron.conf

[all]

[controller1]

[controller2]

[controller3]

配置ml2_conf.ini

[all]

配置 Linux 桥代理

[all]

[controller1]

[controller2]

[controller3]

配置第 3 层代理

[all]

配置 DHCP 代理

[all]

配置元数据代理

[all]

配置 Compute 服务以使用 Networking 服务

[all]

完成安装

创建 ML2 插件配置文件的连接

[all]

填充数据库

[controller1]

重新启动 Compute API 服务

[all]

设置网络服务开启自启并启动

[all]

安装配置计算部分

[all]

安装软件包

配置neutron.conf

配置私有网络类型

配置 Linux 桥代理

[all]

[controller1]

[controller2]

[controller3]

配置 Compute 服务以使用 Networking 服务

[all]

完成安装

[all]

重启 Compute 服务

设置 Linux 网桥代理开机自启并启动

验证

[controller1]

获取 admin 环境变量

获取neutron代理列表

创建网络

[controller1]

创建外部网络

创建外部网络子网

创建内部网络

创建内部网络子网

创建路由

内部网络添加路由

路由设置外部网关

Dashboard

安装配置软件

[all]

安装软件

配置文件

重新启动 Web 服务器和会话存储服务

配置 Haproxy

[all]

配置 haproxy 配置文件

重启haproxy

[controller1]

防火墙放行 80 端口

[all]

验证

打开浏览器,访问:http://192.168.2.20/dashboard/

域:default 用户名:admin 密码:ADMIN_PASS

Block Storage service

安装控制部分

配置 Haproxy

[all]

配置 haproxy 配置文件

重启haproxy

[controller1]

配置数据库

[controller1]

连接数据库

创建cinder,并赋予cinder用户权限,刷新权限并推出

创建用户和端点

[controller1]

加载admin凭证

创建cinder用户

admin角色添加到cinder用户

创建cindercinderv2服务实体

创建 Block Storage 服务 API 端点

安装和配置组件

[all]

安装软件包

配置/etc/cinder/cinder.conf文件

[all]

[controller1]

[controller2]

[controller3]

填充块存储数据库

[controller1]

配置计算以使用块存储

[all]

重新启动 Compute API 服务

[all]

启动 Block Storage 服务并将其配置为在系统引导时启动

[all]

对接 Ceph 存储

创建存储池

[controller1]

创建 Cinder 用户

[controller1]

client.cinder 的密钥环复制到适当的节点,并更改所有权

[controller1]

在 nova-compute 的节点上创建一个密钥的临时副本

[all]

在计算节点上把密钥加进 libvirt 、然后删除临时副本

[all]

配置/etc/cinder/cinder.conf文件

[all]

配置计算/etc/nova/nova.conf文件

[all]

启用 rbd cache 功能

[all]

配置热迁移

[all]

重启计算节点

[all]

重启 cinder-volume

[all]

最后更新于