TH小破站

  • 首页
  • 容器
    • 认识Docker
    • DockerFile详解
  • k8s
    • 认识Kubernetes
    • Kubernetes部署--(kubeadm方式)
    • kubeasz部署k8s集群
    • Ansible-binary部署k8s集群-1.31.2
  • Ceph
    • 认识分布式存储
    • CPEH部署
  • CI/CD
    • DevOps认识
    • 部署--Gitlab
  • ELK
    • ELK简介
    • Elasticsearch
    • Kibana部署
    • Logstash
    • ELK--收集 tomcat 日志(实战)
  • HD
    • 认识--大数据
    • Hadoop-单机部署
    • Hadoop-伪分布部署
    • Hadoop-完全分布部署
    • Hadoop-(HA)完全分布部署
    • Ambari自动部署--Hadoop
  • Nginx
    • Nginx功能介绍
    • Nginx安全选项
    • Nginx配置文件简单介绍
    • 网站服务器部署
  • 监控
    • ZABBIX-部署(yum)
    • ZABBIX-编译安装
  • 云计算
    • KVM 概述
    • OpenStack企业级部署(T版)
    • OpenStack之dashboard部署
    • OpenStack-controller的高可用
    • openstack(Caracal版_ubuntu版本)部署
  • 数据库
    • mariadb与mysql
    • mysql主从
    • MySQL--冷备(实战)
    • MySQL--热备(dump表)
    • MySQL--热备(dump库)
    • 数据恢复实战案例
    • Xtrabackup实现MySql8.x全量备份
    • MyCat实现数据库读写分离
    • MHA实现数据库高可用
    • Percona XtraDB(PXC)实现数据库集群高可用
    • 数据库压力测试
    • PostgreSQL 基操
    • PostgreSQL备份恢复
    • PostgreSQL高可用
    • MongDB安装配置基础使用
    • MongoDB实现复制集
    • MongoDB备份还原
  • 自动化
    • ssh远程服务原理及配置
    • Ansible剧本文件应用
    • Ansible管理服务介绍
    • Ansible自动化部署node_exporter(包含升级,回滚)
    • Saltstack-部署安装
  • 脚本
    • 一键查看服务器资源利用率
    • 一键生成SSL证书
    • 保存指定数量的文件/目录
    • 初始化服务器
    • 扫描可用IP
    • 批量分发SSH密钥
    • 监控多主机磁盘脚本
    • 一键安装MySQL8.x脚本
    • Python脚本监控ES集群
    • 资源巡检脚本
    • 查看各用户使用的cpu占比
热衷于分享
架构师成长之路 !!!
  1. 首页
  2. 云计算
  3. 正文

OpenStack-controller的高可用实现

2023年12月27日 1133点热度 0人点赞 0条评论

controller的高可用

1)安装必要软件

[root@openstack-controller2 ~]# yum -y install centos-release-openstack-train.noarch 
[root@openstack-controller2 ~]# yum install -y python2-PyMySQL libibverbs python-memcached
[root@openstack-controller2 ~]# yum -y install python-openstackclient openstack-selinux
[root@openstack-controller2 ~]# yum -y install openstack-keystone httpd mod_wsgi

2)keystone部署

2.1)拷贝原来controller1节点的keystone配置文件到controller2

[root@openstack-controller1 ~]# cd /etc/keystone/
[root@openstack-controller1 keystone]# tar zcvf keystone-controller1.tar.gz ./
[root@openstack-controller1 keystone]# scp keystone-controller1.tar.gz 192.168.139.32:/etc/keystone/
[root@openstack-controller2 ~]# cd /etc/keystone/
[root@openstack-controller2 keystone]# tar xf keystone-controller1.tar.gz 
`配置解析`
[root@openstack-controller2 keystone]# echo '192.168.139.248 openstack-vip.stangj.local' >> /etc/hosts

2.2)配置启动httpd

[root@openstack-controller2 keystone]# vim /etc/httpd/conf/httpd.conf 
# 95 行添加
ServerName 192.168.139.32
[root@openstack-controller2 keystone]# ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
`启动httpd`
[root@openstack-controller2 keystone]# systemctl enable --now httpd.service 
[root@openstack-controller2 keystone]# ss -tnl | grep 5000
LISTEN     0      128       [::]:5000                  [::]:*      

2.3)验证keystone服务

2.3.1)修改haproxy配置文件
[root@openstack-haproxy ~]# vim /etc/haproxy/haproxy.cfg 
# 在相应keystone配置进行修改
listen openstack-keystone-5000
  bind 192.168.139.248:5000
  mode tcp
  # server 192.168.139.31 192.168.139.31:5000 check inter 3s fall 3 rise 5
  server 192.168.139.32 192.168.139.32:5000 check inter 3s fall 3 rise 5
`重启服务`
[root@openstack-haproxy ~]# systemctl restart haproxy.service 
[root@openstack-haproxy ~]# ss -tnl | grep 5000
LISTEN     0      128    192.168.139.248:5000                     *:*  
2.3.2)controller1验证是否可以使用keystone
[root@openstack-controller1 ~]# source admin.sh 
[root@openstack-controller1 ~]# openstack user list
+----------------------------------+-----------+
| ID                               | Name      |
+----------------------------------+-----------+
| 5c4b6243d95742799de0fc97ef119967 | admin     |
| f40449a65bcf491aaf44cc4f8e09f3fa | myuser    |
| 34a900b8a67f40439804c830cd5957da | glance    |
| cb85bb0ca6494d2fa018e0a9de0e946b | placement |
| a4dea845d5b7456fb2ba6f426d59f8ba | nova      |
| 282317cd0bb74396a7a12dcdd96aeed0 | neutron   |
+----------------------------------+-----------+

看到上面信息,这说明controller2的keystone服务没有问题

3)glance部署

3.1)安装相应包

[root@openstack-controller2 ~]# yum -y install openstack-glance

3.2)配置镜像挂载点

[root@openstack-controller2 ~]# mkdir /var/lib/glance/images
[root@openstack-controller2 ~]# chown -R glance:glance /var/lib/glance/images
[root@openstack-mysql ~]# echo '192.168.139.36:/data/glance /var/lib/glance/images nfs defaults,_netdev 0 0' >> /etc/fstab 
[root@openstack-controller2 ~]# mount -a
[root@openstack-controller2 ~]# df -TH
Filesystem                  Type      Size  Used Avail Use% Mounted on
devtmpfs                    devtmpfs  2.0G     0  2.0G   0% /dev
tmpfs                       tmpfs     2.0G     0  2.0G   0% /dev/shm
tmpfs                       tmpfs     2.0G   13M  2.0G   1% /run
tmpfs                       tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/mapper/centos-root     xfs        81G  5.7G   75G   8% /
/dev/sda1                   xfs       1.1G  158M  906M  15% /boot
tmpfs                       tmpfs     396M     0  396M   0% /run/user/0
192.168.139.36:/data/glance nfs4       81G  2.6G   78G   4% /var/lib/glance/images
[root@openstack-controller2 ~]# ll /var/lib/glance/images
total 880600
-rw-r----- 1 glance glance  12716032 Dec 14 23:34 060a4a23-5aa8-4176-8f31-0ccd318ebf2a
-rw-r----- 1 glance glance 888995840 Dec 18 13:58 f3d8d733-347c-4960-ba1f-55a087cb19cb

3.3)拷贝原来controller1节点的glance配置文件到controller2

[root@openstack-controller1 ~]# cd /etc/glance/
[root@openstack-controller1 glance]# tar zcf glance-controller1.tar.gz ./*
[root@openstack-controller1 glance]# scp glance-controller1.tar.gz 192.168.139.32:/etc/glance/
[root@openstack-controller2 glance]# tar xf glance-controller1.tar.gz 

3.4)启动glance服务

[root@openstack-controller2 ~]# systemctl enable --now openstack-glance-api.service 
[root@openstack-controller2 ~]# ss -tnl | grep 9292
LISTEN     0      128          *:9292                     *:*  

3.5)修改haproxy

[root@openstack-haproxy ~]# vim /etc/haproxy/haproxy.cfg 
# 修改增加下面消息
listen openstack-glance-9292
  bind 192.168.139.248:9292
  mode tcp
  # server 192.168.139.31 192.168.139.31:9292 check inter 3s fall 3 rise 5
  server 192.168.139.32 192.168.139.32:9292 check inter 3s fall 3 rise 5
[root@openstack-haproxy ~]# systemctl restart haproxy.service 
[root@openstack-haproxy ~]# ss -tnl | grep 9292
LISTEN     0      128    192.168.139.248:9292                     *:* 

3.6)验证服务

[root@openstack-controller1 ~]# source admin.sh 
[root@openstack-controller1 glance]#  openstack image list
+--------------------------------------+-----------------+--------+
| ID                                   | Name            | Status |
+--------------------------------------+-----------------+--------+
| f3d8d733-347c-4960-ba1f-55a087cb19cb | CentOS-7-x86_64 | active |
| 060a4a23-5aa8-4176-8f31-0ccd318ebf2a | cirros-0.4.0    | active |
+--------------------------------------+-----------------+--------+

看到上面信息,这说明controller2的glance服务没有问题

4)部署Placement

4.1)安装相应包

[root@openstack-controller2 ~]# yum -y install openstack-placement-api

4.2)拷贝原来controller1节点的placement配置文件到controller2

[root@openstack-controller1 ~]# cd /etc/placement/
[root@openstack-controller1 placement]# tar zcf placement-controller1.tar.gz ./*
[root@openstack-controller1 placement]# scp placement-controller1.tar.gz 192.168.139.32:/etc/placement/
[root@openstack-controller2 ~]# cd /etc/placement/
[root@openstack-controller2 placement]# tar xf placement-controller1.tar.gz 
[root@openstack-controller2 placement]# vim /etc/httpd/conf.d/00-placement-api.conf 
[root@openstack-controller2 placement]# vim /etc/httpd/conf.d/00-placement-api.conf 
# 在最后一行添加下面9行内容
<Directory /usr/bin>
   <IfVersion >= 2.4>
      Require all granted
   </IfVersion>
   <IfVersion < 2.4>
      Order allow,deny
      Allow from all
   </IfVersion>
</Directory>

4.3)重启httpd服务

[root@openstack-controller2 placement]# systemctl restart httpd

4.4)修改haproxy

[root@openstack-haproxy ~]# vim /etc/haproxy/haproxy.cfg 
# 修改增加下面消息
listen openstack-placement-8778
  bind 192.168.139.248:8778
  mode tcp
  # server 192.168.139.31 192.168.139.31:8778 check inter 3s fall 3 rise 5
  server 192.168.139.32 192.168.139.32:8778 check inter 3s fall 3 rise 5
[root@openstack-haproxy ~]# systemctl restart haproxy.service 
[root@openstack-haproxy ~]# ss -tnl | grep 8778
LISTEN     0      128    192.168.139.248:8778                     *:*  

4.5)验证服务

[root@openstack-controller1 ~]# placement-status upgrade chack
+----------------------------------+
| Upgrade Check Results            |
+----------------------------------+
| Check: Missing Root Provider IDs |
| Result: Success                  |
| Details: None                    |
+----------------------------------+
| Check: Incomplete Consumers      |
| Result: Success                  |
| Details: None                    |
+----------------------------------+

看到上面信息,这说明controller2的Placement服务没有问题

5)部署nova

5.1)安装相应包

[root@openstack-controller2 ~]# yum -y install openstack-nova-api openstack-nova-conductor openstack-nova-novncproxy openstack-nova-scheduler

5.2)拷贝原来controller1节点的nova配置文件到controller2

[root@openstack-controller1 ~]# cd /etc/nova/
[root@openstack-controller1 nova]# tar zcf nova-controller1.tar.gz ./*
[root@openstack-controller1 nova]# scp nova-controller1.tar.gz 192.168.139.32:/etc/nova/
[root@openstack-controller2 nova]# tar xf nova-controller1.tar.gz 
`需要修改下面这个文件,把IP改为本地地址`
[root@openstack-controller2 nova]# grep 192 ./ -R
./nova.conf:server_listen = 192.168.139.31
./nova.conf:server_proxyclient_address = 192.168.139.31
[root@openstack-controller2 nova]# vim nova.conf 
.......
server_listen = 192.168.139.32
server_proxyclient_address = 192.168.139.32
.......

5.3)启动服务

[root@openstack-controller2 nova]# systemctl enable --now \
                               openstack-nova-api.service \
                               openstack-nova-scheduler.service \
                               openstack-nova-conductor.service \
                               openstack-nova-novncproxy.service

5.4)修改haproxy

[root@openstack-haproxy ~]# vim /etc/haproxy/haproxy.cfg 
# 修改增加下面消息
listen openstack-nova-8774
  bind 192.168.139.248:8774
  mode tcp
  # server 192.168.139.31 192.168.139.31:8774 check inter 3s fall 3 rise 5
  server 192.168.139.32 192.168.139.32:8774 check inter 3s fall 3 rise 5
# 修改增加下面消息
listen openstack-nova_api-8775
  bind 192.168.139.248:8775
  mode tcp
  # server 192.168.139.31 192.168.139.31:8775 check inter 3s fall 3 rise 5
  server 192.168.139.32 192.168.139.32:8775 check inter 3s fall 3 rise 5
# 修改增加下面消息
listen openstack-vnc-6080
  bind 192.168.139.248:6080
  mode tcp
  # server 192.168.139.31 192.168.139.31:6080 check inter 3s fall 3 rise 5
  server 192.168.139.32 192.168.139.32:6080 check inter 3s fall 3 rise 5
[root@openstack-haproxy ~]# systemctl restart haproxy.service 
[root@openstack-haproxy ~]# ss -tnl | grep -E '8774|6080'
LISTEN     0      128    192.168.139.248:6080                     *:*                  
LISTEN     0      128    192.168.139.248:8774                     *:*   

5.5)验证服务

[root@openstack-controller1 ~]# nova service-list
+--------------------------------------+----------------+------------------------------------+----------+---------+-------+----------------------------+-----------------+-------------+
| Id                                   | Binary         | Host                               | Zone     | Status  | State | Updated_at                 | Disabled Reason | Forced down |
+--------------------------------------+----------------+------------------------------------+----------+---------+-------+----------------------------+-----------------+-------------+
| 518a8c83-c6d4-451c-8943-fa55c593948c | nova-conductor | openstack-controller1.stangj.local | internal | enabled | up    | 2023-12-19T13:34:11.000000 | -               | False       |
| 9d9d1228-2096-4ca3-97a9-8b85133db7fa | nova-scheduler | openstack-controller1.stangj.local | internal | enabled | up    | 2023-12-19T13:34:16.000000 | -               | False       |
| a45e7eeb-1907-4ecf-a836-7ca69b588edf | nova-compute   | openstack-node1.stangj.local       | nova     | enabled | up    | 2023-12-19T13:34:04.000000 | -               | False       |
| f8bb561e-8f49-4db1-b16e-8af55b376027 | nova-conductor | openstack-controller2.stangj.local | internal | enabled | up    | 2023-12-19T13:33:58.000000 | -               | False       |
| 5c96b39a-609c-4508-b4d4-50f8f7e0a6f3 | nova-scheduler | openstack-controller2.stangj.local | internal | enabled | up    | 2023-12-19T13:34:01.000000 | -               | False       |
+--------------------------------------+----------------+------------------------------------+----------+---------+-------+----------------------------+-----------------+-------------+

看到上面信息,这说明controller2的nova服务没有问题

6)部署neutron

6.1)安装相应包

[root@openstack-controller2 ~]# yum -y install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables

6.2)拷贝原来controller1节点的neutron配置文件到controller2

[root@openstack-controller1 ~]# cd /etc/neutron/
[root@openstack-controller1 neutron]# tar zcf neutron-controller1.tar.gz ./*
[root@openstack-controller1 neutron]# scp neutron-controller1.tar.gz 192.168.139.32:/etc/neutron/
[root@openstack-controller2 ~]# cd /etc/neutron/
[root@openstack-controller2 neutron]# tar xf neutron-controller1.tar.gz 

6.3)启动服务

[root@openstack-controller2 ~]# systemctl enable --now neutron-server.service \
  neutron-linuxbridge-agent.service neutron-dhcp-agent.service \
  neutron-metadata-agent.service

6.4)修改haproxy

[root@openstack-haproxy ~]# vim /etc/haproxy/haproxy.cfg 
# 修改增加下面消息
listen openstack-neutron-9696
  bind 192.168.139.248:9696
  mode tcp
  # server 192.168.139.31 192.168.139.31:9696 check inter 3s fall 3 rise 5
  server 192.168.139.32 192.168.139.32:9696 check inter 3s fall 3 rise 5
[root@openstack-haproxy ~]# systemctl restart haproxy.service 
[root@openstack-haproxy ~]# ss -tnl | grep 9696
LISTEN     0      128    192.168.139.248:9696                     *:*   

6.5)验证服务

[root@openstack-controller1 ~]# source admin.sh 
[root@openstack-controller1 ~]# neutron agent-list
neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.
+--------------------------------------+--------------------+------------------------------------+-------------------+-------+----------------+---------------------------+
| id                                   | agent_type         | host                               | availability_zone | alive | admin_state_up | binary                    |
+--------------------------------------+--------------------+------------------------------------+-------------------+-------+----------------+---------------------------+
| 05007836-c748-4493-bbbe-c84aef862f9e | Linux bridge agent | openstack-node2.stangj.local       |                   | xxx   | True           | neutron-linuxbridge-agent |
| 659c95f7-30c4-4959-8ba0-a3014de7aef4 | DHCP agent         | openstack-controller2.stangj.local | nova              | :-)   | True           | neutron-dhcp-agent        |
| 6d7ace9c-061c-45ba-834b-52f24585c452 | Linux bridge agent | openstack-controller1.stangj.local |                   | :-)   | True           | neutron-linuxbridge-agent |
| 7babc5ac-d07d-4fe4-90ab-62775b4ef90b | Linux bridge agent | openstack-node1.stangj.local       |                   | :-)   | True           | neutron-linuxbridge-agent |
| 83ad2332-8716-4a8f-b050-1daa3b22c3bf | DHCP agent         | openstack-controller1.stangj.local | nova              | :-)   | True           | neutron-dhcp-agent        |
| a8b85139-a30a-444e-8731-730e7a705a4d | Linux bridge agent | openstack-controller2.stangj.local |                   | :-)   | True           | neutron-linuxbridge-agent |
| afb7c427-89ba-4e91-bff2-604e97a5ca91 | Metadata agent     | openstack-controller1.stangj.local |                   | :-)   | True           | neutron-metadata-agent    |
| e48b7889-1b53-41fc-bae6-36853b021be6 | Metadata agent     | openstack-controller2.stangj.local |                   | :-)   | True           | neutron-metadata-agent    |
+--------------------------------------+--------------------+------------------------------------+-------------------+-------+----------------+---------------------------+

看到上面信息,这说明controller2的neutron服务没有问题

7)部署dashboard

7.1)安装相应软件

[root@openstack-controller2 ~]# yum -y install openstack-dashboard

7.2)6.2)拷贝原来controller1节点的dashboard配置文件到controller2

[root@openstack-controller1 ~]# cd /etc/openstack-dashboard/
[root@openstack-controller1 openstack-dashboard]# tar zcf dashboard-controller1.tar.gz ./*
[root@openstack-controller1 openstack-dashboard]# scp dashboard-controller1.tar.gz 192.168.139.32:/etc/openstack-dashboard/
[root@openstack-controller2 ~]# cd /etc/openstack-dashboard/
[root@openstack-controller2 openstack-dashboard]# tar xf dashboard-controller1.tar.gz 
`需要修改下面这个文件,把IP改为本地地址`
[root@openstack-controller2 openstack-dashboard]# grep 192 ./ -R
./local_settings:ALLOWED_HOSTS = ['192.168.139.31', 'openstack-vip.stangj.local']
./local_settings:OPENSTACK_HOST = "192.168.139.31"
[root@openstack-controller2 openstack-dashboard]# vim local_settings
# 找到对应信息进行修改
......
ALLOWED_HOSTS = ['192.168.139.32', 'openstack-vip.stangj.local']
......
OPENSTACK_HOST = "192.168.139.32"
......

7.3)重启httpd

[root@openstack-controller2 openstack-dashboard]# systemctl restart httpd.service 
[root@openstack-controller2 openstack-dashboard]# ss -tnl | grep 80
LISTEN     0      100          *:6080                     *:*                  
LISTEN     0      128       [::]:80                    [::]:*  

7.4)修改haproxy

[root@openstack-haproxy ~]# vim /etc/haproxy/haproxy.cfg 
# 修改增加下面消息
listen openstack-dashboard-80
  bind 192.168.139.248:80
  mode tcp
  # server 192.168.139.31 192.168.139.31:80 check inter 3s fall 3 rise 5
  server 192.168.139.32 192.168.139.32:80 check inter 3s fall 3 rise 5
[root@openstack-haproxy ~]# systemctl restart haproxy.service 

7.5)验证服务

测试是否可以创建虚拟机

看到上面信息,这说明controller2的dashboard服务没有问题

注意:一般我们都会在haproxy打开两个管理端的转发,防止单点故障

标签: 暂无
最后更新:2023年12月27日

tanghao946

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复
文章目录
  • controller的高可用
    • 1)安装必要软件
    • 2)keystone部署
    • 3)glance部署
    • 4)部署Placement
    • 5)部署nova
    • 6)部署neutron
    • 7)部署dashboard
    • 注意:一般我们都会在haproxy打开两个管理端的转发,防止单点故障

COPYRIGHT © 2025 TH小破站. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

渝ICP备2023013789号

渝公网安备50011702500926号