使用背景:

  • 通过调用python SDK在腾讯云手动部署keepalived高可用

部署环境

系统:centos7.3

Master:192.168.0.100

Slave:192.168.0.14

VIP:192.168.0.76

=================================================================

master和slave上部署python命令行环境

yum -y install python python-pip
pip install qcloudcli

安装命令行自动补齐

complete  -C '/usr/bin/qcloud_completer' qcloudcli

自动补齐永久生效vi ~/.bash_profile 添加上述命令到最后一行

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi # User specific environment and startup programs PATH=$PATH:$HOME/bin export PATH
complete -C '/usr/bin/qcloud_completer' qcloudcli

=========================================================================================================================

安装keepalived

yum -y install keepalived

进入到keepalived目录并下载python-sdk

cd /etc/keepalived/
wget https://mc.qcloudimg.com/static/archive/b61ee1ce734e7437530304152c20ee14/qcloudapi-sdk-python-master.zip
unzip qcloudapi-sdk-python-master.zip

  

调用python-sdk申请VIP vim setup.py,注:master上执行即可   secretID和secretkey需要在云AIP密钥中申请,执行./setup.py

#!/usr/bin/python
# -*- coding: utf-8 -*-
from src.QcloudApi.qcloudapi import QcloudApi
module = 'vpc'
action = 'AssignPrivateIpAddresses'
config = {
'Region': 'gz',
'secretId': '您的secretId',
'secretKey': '您的secretKey',
'method': 'post'
}
params = {
'vpcId': 'vpc-53nh7c3p',
'networkInterfaceId': 'eni-431tr0x5',
'secondaryPrivateIpAddressCount': '1'
}
try:
service = QcloudApi(module, config)
print service.generateUrl(action, params)
print service.call(action, params)
except Exception, e:
print 'exception:', e

  

创建vip漂移脚本master:vi vip.py(backup只需要调换oldnetworkinterfaceID和newnetworkinterfaceID调换即可)

#!/usr/bin/python
# -*- coding: utf-8 -*- from QcloudApi.qcloudapi import QcloudApi #SDK源码直接使用方式使用
#from src.QcloudApi.qcloudapi import QcloudApi module = 'vpc'
action = 'MigratePrivateIpAddress'
config = {
'Region': 'gz',
'secretId': '####',
'secretKey': '####',
'method': 'post'
}
params = {
'vpcId': 'vpc-53nh7c3p',
'privateIpAddress': '192.168.0.76',
'oldNetworkInterfaceId': 'backup网卡ID',
'newNetworkInterfaceId': 'master网卡ID'
} try:
service = QcloudApi(module, config)
print service.generateUrl(action, params)
print service.call(action, params)
except Exception, e:
print 'exception:', e

配置keepalived.conf文件vi keepalived.conf (master)

! Configuration File for keepalived
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_sync_group G1 {
group {
VI_1
}
notify_master "/etc/keepalived/vip.py"
}
vrrp_instance VI_1 {
#注意主备参数选择
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
unicast_peer {
192.168.0.14 #对端设备的IP地址,例如:10.0.0.1
}
virtual_ipaddress {
192.168.0.76 #第一步申请的 VIP
}
nopreempt
garp_master_delay 1
garp_master_refresh 5
}

  配置keepalived.conf文件vi keepalived.conf (backup)

! Configuration File for keepalived
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_sync_group G1 {
group {
VI_1
}
notify_master "/etc/keepalived/vip.py"
}
vrrp_instance VI_1 {
#注意主备参数选择
state BACKUP
interface eth0
virtual_router_id 51 ###主从必须一致
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
unicast_peer { ##keepalived单播模式
192.168.0.100 #对端设备的IP地址,例如:10.0.0.1
}
virtual_ipaddress {
192.168.0.76 #第一步申请的 VIP
}
nopreempt
garp_master_delay 1
garp_master_refresh 5

主从上启动keepalived服务

systemctl start keepalived.service

测试:

关闭master上的keepalived服务,查看VIP是否自动漂移到backup上

测试正常

腾讯云部署keepalived高可用的更多相关文章

  1. 每天响应数亿次请求,腾讯云如何提供高可用API服务?

    每天响应数亿次请求,腾讯云如何提供高可用API服务? https://mp.weixin.qq.com/s/OPwlHcqkaTT_gcwHfr5Shw 李阳 云加社区 2020-09-16 导语 | ...

  2. 又拍云之 Keepalived 高可用部署

    在聊 Keepalived 之前,我们需要先简单了解一下 VRRP.VRRP(Virtual Router Redundancy Protocol)即虚拟路由冗余协议,是专门为了解决静态路由的高可用而 ...

  3. 十一.keepalived高可用服务实践部署

    期中集群架构-第十一章-keepalived高可用集群章节======================================================================0 ...

  4. Linux(13):期中架构(5)--- 前端部分:keepalived高可用 & HTTPS & iptables防火墙

    keepalived 高可用集群 1. keepalived服务概念说明 # 1.1 keepalived软件的作用? Keepalived软件起初是专为LVS负载均衡软件设计的, 用来管理并监控LV ...

  5. Keepalived高可用服务器案例

    部署Keepalived高可用软件,实现如下: - 使用Keepalived实现web服务器的高可用 - Web服务器IP地址分别为192.168.4.100和192.168.4.200 - Web服 ...

  6. Cluster基础(三):配置HAProxy负载平衡集群、Keepalived高可用服务器、Keepalived+LVS服务器

    一.配置HAProxy负载平衡集群 目标: 准备三台Linux服务器,两台做Web服务器,一台安装HAProxy,实现如下功能: 客户端访问HAProxy,HAProxy分发请求到后端Real Ser ...

  7. Oracle Compute云快速搭建MySQL Keepalived高可用架构

    最近有个客户在测试Oracle Compute云,他们的应用需要使用MySQL数据库,由于是企业级应用一定要考虑高可用架构,因此有需求要在Oracle Compute云上搭建MySQL高可用集群.客户 ...

  8. LVS+Keepalived 高可用环境部署记录(主主和主从模式)

    之前的文章介绍了LVS负载均衡-基础知识梳理, 下面记录下LVS+Keepalived高可用环境部署梳理(主主和主从模式)的操作流程: 一.LVS+Keepalived主从热备的高可用环境部署 1)环 ...

  9. LVS+Keepalived高可用部署

    一.LVS+Keepalived高可用部署 一.keepalived节点部署 1.安装keepalived yum install keepalived ipvsadm -y mkdir -p /op ...

随机推荐

  1. Spring 单例模式

    恶汉模式:Ehan.java package com.cn.danli; /** * 饿汉式单例模式 */ public class Ehan { private static Ehan eh = n ...

  2. springboot(十七):过滤器(Filter)和拦截器(Interceptor)

    概述 在做web开发的时候,过滤器(Filter)和拦截器(Interceptor)很常见,通俗的讲,过滤器可以简单理解为“取你所想取”,忽视掉那些你不想要的东西:拦截器可以简单理解为“拒你所想拒”, ...

  3. Newtonsoft.Json序列化Enum类型

    [JsonConverter(typeof(StringEnumConverter))] public StringAlignment TextAlign { get => textAlign; ...

  4. MVC中的分部视图

    背景: 项目的工期马上就要到了,由于后台封装的很好,我们只需要用心熟悉框架,接下来后台的工作就是简单的代码工作了.原本以为最困难的时期已经过去,可没想到前台才是最困难的. B/S的基础十分薄弱,加上B ...

  5. I/O 流

    输入流的几个常用方法: 1,复制一个文件; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; impor ...

  6. 事件对象event

    每个事件都有默认事件event对象 e.target 事件目标对象 e.keycode 键码 e.stopPropogation();//阻止默认事件

  7. sqlserver字符串分割

    create function sp_split( @c nvarchar(4000), @splitchar nvarchar(1) ) returns @table table (word nva ...

  8. jq的css方法

    读属性: $(selector).css(name) 设置属性: 法一: $(selector).css(name,value) 法二: $(selector).css(name,function(i ...

  9. linux 如何保持兼容性

    参考链接:   https://www.cnblogs.com/MYSQLZOUQI/p/5383594.html

  10. STL之heap学习

    C++标准库中的堆-heap make_heap函数,包括两个参数(begin(number),end(number)).(左闭右开) pop_heap函数,包括两个参数,起始位置和终止位置,将当前区 ...