1、修改globals.yaml高可用部分的文件

云平台方式部署 云平台基础部署工作_云平台方式部署

enable_masakari的值改为“yes”;

conrosync_bindnetaddr的值修改为对应心跳网络的网段(如果没有单独的心跳网络,可以复用管理网和存储网,但是建议有限万兆)

corosync_expected_votes的值根据(计算节点数量/2-1)得出的结果需要是奇数个,如果为偶数减一即可(记住算出来的偶数,后面高可用域分组的数量按照这个数记录)

2、正式部署高可用

执行kolla-ansible -i /kylincloud/multinode deploy (由于幂等性之前部署过得组件会自动跳过)

就会部署上高可用对应的组件

部署完成之后查看 /etc/kolla/corosync/corosync.conf和/etc/kolla/pacemaker/corosync.conf (两个文件是相同的)

云平台方式部署 云平台基础部署工作_高可用_02

其中member的IP是心跳网络对应的具体IP,menber的数量是根据corosync_expected_votes分组的决定的,(例如corosync_expected_votes的值为7,则member的数量就是7)则interface中的7个节点的配置文件一样,除了bindnetaddr(这个为本机心跳IP)。其他分组的节点需要填写其他分组的内容(比如计算1-8为一组,则配置文件填写1-8的IP,9-18为一组,则配置文件填写9-18的IP)

3、配置高可用域

云平台方式部署 云平台基础部署工作_开发语言_03

登录云平台------系统配置-----高可用-----打开高可用域-----保存更改

然后刷新一下云平台界面会发现在左侧菜单中多出来了一个高可用

云平台方式部署 云平台基础部署工作_云平台方式部署_04

然后点击创建高可用域

云平台方式部署 云平台基础部署工作_开发语言_05

自定义高可用域的名字,添加完成之后会在页面当中出现(如果没有出现数据,说明高可用组件部署出现问题),然后点击添加物理主机,选择需要高可用的物理主机(状态为激活、勾选保留、勾掉维护)

每组高可用需要对应之前corosync_expected_votes的值

4、简单的运维

在部署完成,配置完成之后

查看一下/etc/kolla/masakari-hostmonitor/masakari-monitors.conf里面的corosync_multicast_interfaces 的值(需要每个高可用节点都查看)

需要改成心跳网的网卡(如果不是需要修改)

修改完成之后重启服务:

docker restart masakari_hostmonitor

5、查看日志

通过

tail -30f /var/lib/docker/volumes/kola_logs/_data/masakari-hostmonitor.log

查看高可用的日志

云平台方式部署 云平台基础部署工作_开发语言_06

第一个标红的地方为配置的心跳网卡状态

第二个标红的地方为测试节点poweroff之后高可用服务是否可以检查到该节点已经下线

如果这些正常说明高可用服务正常,等待5-10分钟故障节点的虚拟机就会自动迁移

注意事项:

  1. 如果云平台集群重启之后,发现高可用页面编辑之后无法正确的修改状态,点击确认之后发现状态没有修改过来,则用一下方法解决

云平台方式部署 云平台基础部署工作_php_07

cat /etc/kolla/masakari-engine/masakari.conf

[database]

connection=mysql+pymysql://masakari:m2AYHWE17xCO1CcfzspJ6yjuy31UMRuVgNMu45Jm@5.9.103.88:3306/masakari

用这个信息填写下面的数据库登录内容,登录进去修改数据库

mysql -h 5.9.103.88 -u masakari pm2AYHWE17xCO1CcfzspJ6yjuy31UMRuVgNMu45Jm -D masakari 

update notifications set deleted=1 \G

2、执行完成上面的内容之后,回到ui界面重新编辑状态