在海航云中部署 keepalived
**本文属自我学习,不适合转载**
1. 准备工作
1.1 网络方面的准备工作
1.1.1 创建安全组

注意这里要添加 vrrp 协议支持,否则 keepalived 将无法正常工作。

1.1.2 创建网络

1.1.3 创建路由器,绑定EIP,并连接上面的网络

1.1.4 创建 VIP 的弹性网卡,设置安全组,绑定EIP

1.2 创建两个弹性云服务器,并绑定EIP

1.3 在虚机的网卡上设置允许的地址对
添加:(需要在两个虚机的网卡上添加允许的地址对,从而允许该网卡上使用 vip 的IP发出去的网络包能够被发出)

结果:

2. 安装 keepalived和httpd
(1).通过SSH登录 master,安装 keepalived,并做如下配置

安装 httpd,设置其监听端口为81。并在 /var/www/html/index.html 文件中写入 master.
需要设置 www 目录的访问权限 sudo chmod 755 html -R,否则会收到 403 错误。
将 httpd 和 keepalived 设置为自动启动:
- sudo chkconfig keepalived on
- sudo chkconfig httpd on
(2). 在 slave 上做类似的配置,priority 设置为 50.
(3). 在本地和虚机的EIP上测试 http 81 端口,能返回正确的字符串
(4). 能看到 VRRP 网络包

(5). 使用 ip a 命令能看到 master 上的 vip (注意使用 ifconfig 命令看不到)

(6). 能看到vrrp协议的网络包

(7). 能看到浏览器请求时的 vip 发出的网络包

3. 测试
(0)在浏览器上打开 120.132.124.82:81,刷新,查看其返回的字符串。根据字符串判断是哪个节点上返回的。
(1). master 和 salve 都运行的情况下,返回 master
(2). 将 master 关机,刷新,返回 slave
(3). 将 master 开机,刷新,返回 master
(4). 将 slave 关机,刷新,返回 master
此过程中,在 slave 上,运行 sudo tcpdump -n -i eth0 proto 112 命令,能看到 vrrp 主节点的变化过程:
//master 和 slave 都活着时,master 是主
18::48.557128 IP 172.17.100.201 > 224.0.0.18: VRRPv2, Advertisement, vrid , prio , authtype simple, intvl 1s, length
::49.460185 IP 172.17.100.201 > 224.0.0.18: VRRPv2, Advertisement, vrid , prio , authtype simple, intvl 1s, length
//master 关机,slave 升为主
18::50.265691 IP 172.17.100.202 > 224.0.0.18: VRRPv2, Advertisement, vrid , prio , authtype simple, intvl 1s, length
::51.266660 IP 172.17.100.202 > 224.0.0.18: VRRPv2, Advertisement, vrid , prio , authtype simple, intvl 1s, length
::38.304008 IP 172.17.100.202 > 224.0.0.18: VRRPv2, Advertisement, vrid , prio , authtype simple, intvl 1s, length
//master 重启后,它变为主
::41.307612 IP 172.17.100.201 > 224.0.0.18: VRRPv2, Advertisement, vrid , prio , authtype simple, intvl 1s, length
::41.307739 IP 172.17.100.202 > 224.0.0.18: VRRPv2, Advertisement, vrid , prio , authtype simple, intvl 1s, length
::41.308134 IP 172.17.100.201 > 224.0.0.18: VRRPv2, Advertisement, vrid , prio , authtype simple, intvl 1s, length
::42.309298 IP 172.17.100.201 > 224.0.0.18: VRRPv2, Advertisement, vrid , prio , authtype simple, intvl 1s, length
(5). 将安全组里面的 vrrp 协议删除,则 keepalived 出现脑裂,即两个都是 master。
(6). 将当前 MASTER 节点的虚拟网卡上的“允许的地址对”删除,则无法通过浏览器访问 vip:81. 这是因为,该虚机网卡发出的使用vip作为源地址的网络包都被阻止了。这是因为默认在所有虚拟网卡上开启了安全限制,只允许发出跟虚拟网卡自身ip和mac匹配的网络包。
(7). 将当前 SLAVE 节点的虚拟网卡上的“允许的地址对”删除,则不影响通过浏览器访问 vip:81,因为此时该网卡上没有vip;但是,vip 主备切换后,则无法再访问 vip 了。
参考链接:
在海航云中部署 keepalived的更多相关文章
- 腾讯云部署keepalived高可用
使用背景: 通过调用python SDK在腾讯云手动部署keepalived高可用 部署环境 系统:centos7.3 Master:192.168.0.100 Slave:192.168.0.14 ...
- suse 12 编译部署Keepalived + nginx 为 kube-apiserver 提供高可用
文章目录 编译部署nginx 下载nginx源码包 编译nginx 配置nginx.conf 配置nginx为systemctl管理 分发nginx二进制文件和配置文件 启动kube-nginx服务 ...
- MariaDB Galera Cluster 部署 + keepalived实现高可用
MariaDB Galera Cluster 部署 MariaDB作为Mysql的一个分支,在开源项目中已经广泛使用,例如大热的openstack,所以,为了保证服务的高可用性,同时提高系统的负载能力 ...
- Nginx 集群部署(Keepalived)
# Nginx集群部署 # 当我们的用户同时访问量达到一定量的时候,一台服务器是不够用的 # 这个时候我们需要解决这个问题肯定是要添加新的服务器去处理用户访问 # 多台服务器处理用户访问就需要我们集群 ...
- 部署keepalived
下载 keepalived-1.1.20.tar.gz tar -xvf keepalived-1.1.20.tar.gz [root@yoon export]# cd keepalived-1. ...
- ansible自动部署Keepalived实现Nginx服务双机热备
脚本实现通过ansible-playbook自动化安装Keepalived和配置,主要解决问题如下: Keepalived自动化安装: keepalived_vrid配置,自动根据vip获取最后一段作 ...
- python程序—一键部署keepalived+lvs
一个DS 两个RS keepalived端在/root下准备好已经修改好的配置文件 import paramiko # keepalived端 需要修改的信息 keepalived_ip='192.1 ...
- 十一.keepalived高可用服务实践部署
期中集群架构-第十一章-keepalived高可用集群章节======================================================================0 ...
- K8s多节点部署+负载均衡+keepalived ——囊萤映雪
K8s多节点部署+负载均衡+keepalived --囊萤映雪 1.多节点master2 部署 2.负载均衡部署+keepalived 1.多节点master2部署: #从master01节点上拷贝证 ...
随机推荐
- 3255:十进制到六进制-poj
3255:十进制到六进制 总时间限制: 1000ms 内存限制: 65536kB 描述 进制转换: 将十进制(不超过int类型表示的范围)的数转换为六进制的数. 输入 输入为第一行是组数n,后面n ...
- RAC环境下误操作将数据文件添加到本地存储
今天碰到个有意思的事情,有客户在Oracle RAC环境,误操作将新增的数据文件直接创建到了其中一个节点的本地存储上. 发现网上去搜的话这种问题还真不少,对应解决方案也各式各样,客户问我选择哪种方案可 ...
- 数据结构与算法--Boyer-Moore和Rabin-Karp子字符串查找
数据结构与算法--Boyer-Moore和Rabin-Karp子字符串查找 Boyer-Moore字符串查找算法 注意,<算法4>上将这个版本的实现称为Broyer-Moore算法,我看了 ...
- Python测试开发之函数
对于初学者而言,感觉函数还是不是很好理解,尤其是当写一个脚本,或者是写一个算法,认为可能for循环就已经可以解决的问题为什么还要用函数来实现呢? 今天就来说一下函数的优点,其实函数的最大优点就是可重用 ...
- 使用echarts,制作色温图
1.需要下载echarts的echarts-all.js文件和创建地图需要用到的数据源 2.在项目中创建jsp文件,将js文件引入 <script type="text/javascr ...
- HDU4466 Triangle
题意:给一个长为N的铁丝,问你有几种方法将其划分为若干段,使得每一段都能围成一个边长为整数的三角形,并且围成的三角形都相似 思路其实很明显,三角形的周长必定是N的约数,那么答案就是周长C能围城的三角形 ...
- JAVA实现同域单点登录
所用技术: SSM MySQL Maven Tomcat8.0 同域单点登录详细步骤如下: 1.首先写一个登录界面(隐藏域为暂存地址) 2.判断用户密码是否正确,正确则添加cookie,否则返回错误页 ...
- Python的字典
1. Python的字典 1.1. 字典的定义 在Python中,字典是一种key-value的数据类型,也是唯一的映射类型:字典还是另一种可变容器类型,且可存储任意类型对象,其中也可包括其他容器 ...
- html标签对应的英文原文 - 司徒正美
标签 对应英文 说明 <!--> / 注释 <!DOCTYPE> document type 文档类型 <a> anchor 超链接 <abbr> ab ...
- 学习日记之工厂方法模式和Effective C++
简单工厂模式VS工厂方法模式: 简单工厂模式:最大长处在于工厂类中必须包括必要的逻辑推断,依据client选择条件动态实例化相关类,对于client来说,去除了与详细产品的依赖. 工厂方法模式(Fac ...