01_项目-基于keepalived的双vip高可用web集群

文章目录


个人博客
https://blog.csdn.net/cPen_web


项目名称:基于keepalived的双vip高可用web集群


架构图

架构图


项目环境:CentOS 8.2(8台 1核1G),ansible 2.9.17,keepalived 2.0.10,Nginx 1.19.7,NFS

项目描述:

        构建一个高并发,高可用性的web集群项目,融入ansible实现自动化运维,使用Nginx做负载均衡器,keepalived实现高可用。ansible服务器(1台)、firewall服务器(1台)、堡垒机(1台)、负载均衡器(2台)、web服务器(3台,其中1台是NFS+web服务器);


项目步骤:

        1.安装好8台CentOS 8.2的系统,部署好ansible服务器,在所有的机器之间配置ssh免密通道;

# ansible服务器
[root@ansible ~]# ssh-keygen -t ecdsa					#注:生成密钥对
[root@ansible ~]# ssh-copy-id -i ~/.ssh/id_ecdsa.pub 192.168.1.110	#注:firewall
[root@ansible ~]# ssh-copy-id -i ~/.ssh/id_ecdsa.pub 192.168.1.130	#注:堡垒机
[root@ansible ~]# ssh-copy-id -i ~/.ssh/id_ecdsa.pub 192.168.1.141	#注:load_balancer-1
[root@ansible ~]# ssh-copy-id -i ~/.ssh/id_ecdsa.pub 192.168.1.142	#注:load_balancer-2
[root@ansible ~]# ssh-copy-id -i ~/.ssh/id_ecdsa.pub 192.168.1.151	#注:web-1
[root@ansible ~]# ssh-copy-id -i ~/.ssh/id_ecdsa.pub 192.168.1.152	#注:web-2
[root@ansible ~]# ssh-copy-id -i ~/.ssh/id_ecdsa.pub 192.168.1.153	#注:web-3

        2.部署好堡垒机,配置firewall服务器的NAT策略,用于发布内网NFS服务器的ssh服务;

# 配置firewall服务器的NAT策略为了发布内网的ssh服务器(即web-1服务器)
[root@firewall ~]# cat iptables_open_ssh-server.sh 
#!/bin/bash
  
#停止firewalld服务
service firewalld stop
#清除下iptables里的规则
iptables -t nat -F
iptables -F
#disabled selinux
setenforce 0
sed -i '/^SELINUX=/ s/enforcing/disabled/' /etc/sysconfig/selinux

#开启路由功能
echo 1 >/proc/sys/net/ipv4/ip_forward

#配置SNAT策略,实现snat功能,将所有内网是192.168.1.0/24这个网段的ip包的源ip修改为192.168.1.110
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ens33 -j SNAT --to-source 192.168.1.110
#配置DNAT策略,发布内网的ssh服务器192.168.1.151(即web-1服务器),访问firewall服务器的2233端口转发到内网的192.158.1.151的22号端口
iptables -t nat -A PREROUTING -d 192.168.1.110 -p tcp --dport 2233 -i ens33 -j DNAT --to-destination 192.168.1.151:22

[root@firewall ~]# bash iptables_open_ssh-server.sh 

效果:192.168.1.110:2233 ssh可以连到web1 192.168.1.151:22

效果图
ssh-success

        3.编写好部署Nginx和keepalived的脚本,编写ansible的playbook实现批量部署;

# ansible服务器
[root@ansible ~]# yum install epel-release -y
[root@ansible ~]# yum install ansible -y

[root@ansible ~]# cat /etc/ansible/hosts 
[nginx-servers]
192.168.1.141
192.168.1.142
192.168.1.151
192.168.1.152
192.168.1.153

[keepalived-servers]
192.168.1.141
192.168.1.142

[root@ansible ~]# cat ansible_playbook.yaml
- hosts: nginx-servers
  remote_user: root
  tasks:
  - name: deploy server-web
    script: ~/onekey_install_nginx.sh
- hosts: keepalived-servers
  remote_user: root
  tasks:
  - name: deploy server-lb
    script: ~/onekey_install_keepalived.sh

[root@ansible ~]# ansible-playbook ansible_playbook.yaml

效果图
ansible

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mycpen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值