对工作中,实验环境的一个小总结

1、创建高可用负载均衡器------创建高可用的时候,添加上ha-mode参数即可

neutron lb-pool-create --lb-method ROUND_ROBIN \
--name mypool-ckf4879-ha --protocol HTTP --subnet-id 83747f17-f688-4f7a-a711-e838484ff055 \
--ha-mode true

通过neutron lb-pool-list命令行可以查看到你创建的负载均衡器,
通过neutron lb-agent-hosting-pool dfd107b5-a17f-4148-93f7-e295d6d322d3命令,可以查看到你创建的负载均衡器都分布在哪些物理节点上
此时查看负载均衡器的状态是standby状态,因为需要创建vip之后负载均衡器才会被激活,也就是才会在agent上生成namespace空间

2、创建vip
neutron lb-vip-create --name myvip-ckf4879-ha --protocol-port 80
--protocol HTTP --subnet-id 83747f17-f688-4f7a-a711-e838484ff055 --address 192.168.0.55 \
dfd107b5-a17f-4148-93f7-e295d6d322d3

3、添加后端成员1
neutron lb-member-create --address 192.168.0.56 \
--protocol-port 80 dfd107b5-a17f-4148-93f7-e295d6d322d3

4、添加后端成员2
neutron lb-member-create --address 192.168.0.57 \
--protocol-port 80 dfd107b5-a17f-4148-93f7-e295d6d322d3

5、健康检查和负载均衡器pool进行关联
neutron lb-healthmonitor-associate c83125fb-bd4f-4f11-a3e5-b0b1b75477c1 dfd107b5-a17f-4148-93f7-e295d6d322d3

6、添加实际的虚机成员1
nova boot lb-test-host1-ha --flavor 1 --image f06bf8fc-55e5-42b4-81eb-008b04e4afcb \
--nic net-id=ffd15fc9-3528-404c-945c-6e3ba40fc92d,v4-fixed-ip=192.168.0.56 \
--availability-zone az01.cell01.ceshihuanjing:AZ01C03.PUB.CS

7、添加实际的虚机成员2
nova boot lb-test-host2-ha --flavor 1 --image f06bf8fc-55e5-42b4-81eb-008b04e4afcb \
--nic net-id=ffd15fc9-3528-404c-945c-6e3ba40fc92d,v4-fixed-ip=192.168.0.57 \
--availability-zone az01.cell01.ceshihuanjing:AZ01C03.PUB.CS

8、在后端成员1上模拟web服务
while true;
do echo -e "HTTP/1.0 200 OK\r\n\r\nWelcome to 192.168.0.56" | sudo nc -l -p 80 ;
done&

9、在后端成员2上模拟web服务
while true;
do echo -e "HTTP/1.0 200 OK\r\n\r\nWelcome to 192.168.0.57" | sudo nc -l -p 80 ;
done

10、创建测试的虚机
nova boot lb-test-host1 --flavor 1 --image f06bf8fc-55e5-42b4-81eb-008b04e4afcb \
--nic net-id=ffd15fc9-3528-404c-945c-6e3ba40fc92d,v4-fixed-ip=192.168.0.50 \
--availability-zone az01.cell01.ceshihuanjing:AZ01C03.PUB.CS

11、在测试虚机上通过vip访问后端成员
for k in $( seq 1 10000 )
do
sleep 1
curl http://192.168.0.55
done

后端成员的信息轮训呈现
Welcome to 192.168.0.56
Welcome to 192.168.0.57
Welcome to 192.168.0.56
Welcome to 192.168.0.57

12、通过命令neutron lb-agent-hosting-pool dfd107b5-a17f-4148-93f7-e295d6d322d3查看,主负载均衡运行在哪个物理节点上

13、通过ssh登录到该物理节点上

14、通过ip netns list 命令显示出负载均衡器

15、通过ip netns exec qlbxxx ip add显示网卡信息

16、通过ip netns exec qlbaas-dfd107b5-a17f-4148-93f7-e295d6d322d3 ip link set ha-d9d48550-c3 down 命令,把接受高可用心跳报文的网卡down掉
从而引起从负载均衡切换为主负载均衡,接管vip

17、在测试主机上仍然可以看到,在正常的访问web服务
后端成员的信息轮训呈现
Welcome to 192.168.0.56
Welcome to 192.168.0.57
Welcome to 192.168.0.56
Welcome to 192.168.0.57

neutron负载均衡高可用测试的更多相关文章

  1. 实现基于Haproxy+Keepalived负载均衡高可用架构

    1.项目介绍: 上上期我们实现了keepalived主从高可用集群网站架构,随着公司业务的发展,公司负载均衡服务已经实现四层负载均衡,但业务的复杂程度提升,公司要求把mobile手机站点作为单独的服务 ...

  2. Lvs+keepAlived实现负载均衡高可用集群(DR实现)

    第1章 LVS 简介 1.1 LVS介绍 LVS是Linux Virtual Server的简写,意为Linux虚拟服务器,是虚拟的服务器集群系统,可在UNIX/LINUX平台下实现负载均衡集群功能. ...

  3. Nginx+Keepalived负载均衡高可用

    Nginx+Keepalived负载均衡高可用方案: Nginx 使用平台:unix.linux.windows. 功能: A.www web服务  http 80 b.负载均衡(方向代理proxy) ...

  4. JAVAEE——宜立方商城03:Nginx负载均衡高可用、Keepalived+Nginx实现主备

    1 nginx负载均衡高可用 1.1 什么是负载均衡高可用 nginx作为负载均衡器,所有请求都到了nginx,可见nginx处于非常重点的位置,如果nginx服务器宕机后端web服务将无法提供服务, ...

  5. Nginx负载均衡高可用

    1.   Nginx负载均衡高可用 首先介绍一下Keepalived,它是一个高性能的服务器高可用或热备解决方案,Keepalived主要来防止服务器单点故障的发生问题,可以通过其与Nginx的配合实 ...

  6. Keepalived+Nginx实现负载均衡高可用

    一.负载均衡高可用 Nginx作为负载均衡器,所有请求都到了Nginx,可见Nginx处于非常重点的位置,如果Nginx服务器宕机后端web服务将无法提供服务,影响严重. 为了避免负载均衡服务器的宕机 ...

  7. LVS+Keepalived-DR模式负载均衡高可用集群

    LVS+Keepalived DR模式负载均衡+高可用集群架构图 工作原理: Keepalived采用VRRP热备份协议实现Linux服务器的多机热备功能. VRRP,虚拟路由冗余协议,是针对路由器的 ...

  8. Nginx+keepalived实现负载均衡高可用配置

    1. 什么是负载均衡高可用 nginx作为负载均衡器,所有请求都到了nginx,可见nginx处于非常重点的位置,如果nginx服务器宕机后端web服务将无法提供服务,影响严重. 为了屏蔽负载均衡服务 ...

  9. Nginx负载均衡高可用---架构

    1. Nginx负载均衡高可用 首先介绍一下Keepalived,它是一个高性能的服务器高可用或热备解决方案,Keepalived主要来防止服务器单点故障的发生问题,可以通过其与Nginx的配合实现w ...

随机推荐

  1. linux 交换分区 swap

    linux swap分区用来保证内存过载时也可以使用,是在磁盘级别对内存的一次扩展,swap分区必须是一个单独的分区 创建过程: 1.用fdisk 命令新建分区,在创建过程中通过L命令和t命令来调整分 ...

  2. php 冒泡排序原理

    $start = microtime(true);   $popArr = array(6,3,23,1,5,100,399,99,66);   echo '6,3,23,1,5,100,399,99 ...

  3. codeforces 553B B. Kyoya and Permutation(找规律)

    题目链接: B. Kyoya and Permutation time limit per test 2 seconds memory limit per test 256 megabytes inp ...

  4. Post提交和Get提交的区别

    表单提交中get和post的区别 1. get: 把表单内各个字段均显示在URL中. post:把表单内各个字段和内容放在html的header内一起传递给action所指的url,用户看不到. 2. ...

  5. linux命令学习笔记(15):tail 命令

    tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件, tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新 ...

  6. #define与typedef区别

    1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错.例如: #define PI 3.141 ...

  7. C++STL 库中set容器应用

    #include<iostream> #include<cstdio> #include<set> using namespace std; set<int& ...

  8. Webpack 基础使用

    使用webstorm编译: 1.新建一个工程(最基本的工程) 2.在webstorm的控制台,使用命令行     cnpm install webpack  -g  全局安装 3.安装完后,可以使用 ...

  9. 数据库:mysql 获取刚插入行id[转]

    我们在写数据库程序的时候,经常会需要获取某个表中的最大序号数, 一般情况下获取刚插入的数据的id,使用select max(id) from table 是可以的.但在多线程情况下,就不行了. 下面介 ...

  10. BluetoothSetServiceState 函数

    DWORD BluetoothSetServiceState( HANDLE hRadio, BLUETOOTH_DEVICE_INFO* pbtdi, GUID* pGuidService, DWO ...