前言
openstack 的架构应当按照用户需求进行定制化,所以我按照openstack-ansible 的官方网站的架构。
集群部署中最为关键的是集群的网络架构,按照功能可以分为计算网络,存储网络以及管理网络。按照网络协议可以分为RDMA 网络 即 infiband ,ROCE 等,以太网网络及FC 光纤网络等。应当按照用户需求进行取舍。
部署之前
参考官方链接:https://docs.openstack.org/openstack-ansible/latest/
打算部署的是 https://docs.openstack.org/openstack-ansible/victoria/ victoria 版本
在部署之前 应该规划以下问题
-
关于网络
- 集群虚拟机用户通过ssh 及私钥访问虚拟机
- 事前准备好集群虚拟机对外访问的网段
- 集群管理员需用访问horizon服务,那么对外网络应当如何提供
-
关于存储
对于ceph存储 应当提前部署好,并建立对应的存储池,如下图所示
使用lvm 卷 lvm 没有副本、冗余机制,所在的节点可能还是个计算节点或管理节点,在维护时会很麻烦。
装机阶段
服务器上机柜,电源打开,做好raid ,并安装好操作系统。
对于usssuri版本的openstack 建议安装ubuntu18.04 hwe
准备阶段
从部署节点的root 账号免密登录到 集群其他节点 的root账户
具体步骤如下:
- 给每个节点的root账户设置密码
- 修改每个节点ssh配置:可通过密码登录,可通过root账户登录
- 在部署节点上生成密钥对,ssh-copy-id 到集群节点
- 查看后端存储系统 ceph的状态,准备好存储池及密钥对
开始部署
参考 https://docs.openstack.org/openstack-ansible/latest/
-
准备部署节点
下载 openstack_ansible 注意选择版本
git clone -b master https://github.com/openstack/openstack-ansible.git /opt/openstack-ansible
Change to the /opt/openstack-ansible
directory, and run the Ansible bootstrap script:
# scripts/bootstrap-ansible.sh
-
准备 目标节点
-
安装系统
推荐:ubuntu 18.04
-
配置免密登录
- 部署节点 的root 用户可以ssh 直接访问到集群的其他节点root用户
-
配置存储
检查后端存储 是否可用
-
配置网络
服务器上的网桥解读:(为什么要配这么多网桥,我想主要作用应该解决不同服务器上网卡名称不同的问题把。)
br-mgmt :管理网络,所有节点的openstack组件RESTful API 都通过这个网桥进行通信,因此这个网络必不可少
br-vxlan : vxlan网络,br-vxlan 接口上需要配置ip地址,vxlan网络才能使用,同时需要打开l2population 或者打开交换机的vxlan 多播模式
br-vlan: vlan 网络 ,假如br-vlan所在交换机 有个vlan29 可以提供用户使用。因此可以在horizon界面上创建vlan29 及虚拟机,这个虚拟机所在物理机上就会出现br-vlan.29。
br-storage: 存储网络,集群里的存储服务器和其他机器通信用的就是这个网络,具体来讲cinder-volume 服务器和 ceph的 mon节点 通过这个网络连接到了一起
lxcbr0: lxc 连接这个接口 安装完成后管理节点上所有的lxc容器里的eth0 都会连接 eth0
-
-
开始部署
一共是 两个配置文件 + 3行命令
两个yaml文件:
/etc/openstack_deploy/openstack_user_config.yml
/etc/openstack_deploy/user_variables.yml
三个命令:
openstack-ansible setup-hosts.yml
openstack-ansible setup-infrastructure.yml
openstack-ansible setup-openstack.yml