Skip to content

alex1528/lvs_cluster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
wateer
May 31, 2015
999eb0c · May 31, 2015

History

12 Commits
May 31, 2015
May 31, 2015
May 29, 2015
May 29, 2015
May 22, 2015
May 22, 2015
May 22, 2015

Repository files navigation

说明

此系统是基于 LVS + OSPF + FULLNAT + Nginx 架构的, 几点说明:

1. 集群有万兆和千兆, 万兆集群的 LVS 机器是万兆网卡, 千兆集群的 LVS 机器是普通千兆网卡;

2. 集群类型分为外网和内网, 通过 type 指定, extra 为外网, internal 为内网;

3. 一个域名通过 DNS 解析到的 IP 即是 VIP, VIP 以 lo 的方式起在每台 LVS 上, VIP 下面可以挂多台 Nginx, Nginx 端口也可以多个;

4. 为每个 VIP 增加了一个属性: wstype, 用于定义 Nginx 的业务属性;

5. 操作 LVS 机器还是通过 SSH 信任来做的, SSH 用户还要有 sudo 权限;

6. LVS 机器重编内核和配置工具(funcs.py里面)可能需要重写, 编写合适的脚本即可.


功能有:

1. 建立 LVS + OSPF + FULLNAT + Nginx 集群, 并且把配置文件发布到所有 LVS 机器, 但不直接 reload keepalived, 需要手动操作(LVS 机器需要事先用「装机系统」安装好);

2. 删除 LVS + OSPF + FULLNAT + Nginx 集群, 只是从数据库中删除集群信息, 集群的机器只需要重装即可;

3. 增加和删除 VIP;

4. 增加和删除 LB(LVS 机器);

5. 增加和删除 WS(Nginx 机器);

6. 增加、修改和删除某一个 VIP 的 port;

7. 修改某一个 VIP 的 wstype;

8. 同步配置到 LB(LVS 机器).

集群信息存储格式

集群信息存在 redis 里面, 下面是一个集群信息的例子:

{
name: "hy-outer-global-proxy-test",
vip2ws: [
	{
		wstype: "test",
		vip: "xx.xx.208.1",
		wss: [
			"test-extngtest0.nosa01"
		],
		ports: [
			{
				dport: 80,
				synproxy: 1,
				sport: 80,
				persistence_timeout: 50
			},
			{
				dport: 443,
				synproxy: 1,
				sport: 443,
				persistence_timeout: 50
			}
		]
	},
	{
		wstype: "app",
		vip: "xx.xx.208.2",
		wss: [
			"app-extngtest0.nosa01"
		],
		ports: [
			{
				dport: 80,
				synproxy: 1,
				sport: 80,
				persistence_timeout: 50
			},
			{
				dport: 443,
				synproxy: 1,
				sport: 443,
				persistence_timeout: 50
			}
		]
	}
],
lbinfos: [
{
	internalgateway: "10.xx.19.225",
	routerid: "xx.xx.246.186",
	internalip: "10.xx.19.226",
	internalnetmask: "255.255.255.224",
	extragateway: "xx.xx.246.185",
	ospfnet: "xx.xx.246.184/30",
	extraip: "xx.xx.246.186",
	hostname: "sa-extlbtest0.nosa01",
	extranetmask: "255.255.255.252"
	}
],
vipnets: [
	"xx.xx.208.0/25",
	"xx.xx.178.128/25",
	"xx.xx.93.48/28",
	"xx.xx.216.0/25"
],
device: "em1",
type: "extra"
}

依赖

ujson
futures
redis 2.10.3

About

lvs fullnat 集群建立和发布工具

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published