一、LVS集群简介

什么是集群

通过网络将很多服务器集中起来,提供同一种服务,在客户端看来就像是只有一个服务器

二、LVS-NAT集群

1、环境准备

启动3台虚拟机,禁用selinux和firewalld,挂载光盘文件并配置yum扩展源,安装vim、bash-completion net-tools软件包

此方案需要准备三台主机,一台lvs调度器,2台web服务器,具体要求如下所示

  1. 主机名 Ip地址 角色
  2. Proxy ens33: 192.168.4.5/24
  3. ens160: 192.168.2.5/24 Lvs调度器
  4. web1 ens33: 192.168.2.100/24 Web服务器
  5. web2 ens33: 192.168.2.200/24 Web服务器

2、先新建一台web1服务器,配置主机名

  1. [root@localhost ~]# hostname web1
  2. [root@localhost ~]# echo web1 > /etc/hostname

3、配置IP地址,是用2网段地址

  1. [root@localhost ~]# nmcli connection modify ens33 ipv4.method manual ipv4.address 192.168.2.100 /24 connection.autoconnect yes
  2. [root@localhost ~]# nmcli connection up ens33

4、配置yum

  1. [root@localhost ~]# mount /dev/cdrom /media
  2. [root@web1 ~]# vi /etc/fstab
  3. /dev/cdrom /media iso9660 defaults 0 0
  4. [root@localhost ~]# rm -rf /etc/yum.repos.d/*
  5. [root@localhost ~]# vi /etc/yum.repo.d/media.repo
  6. [media]
  7. name=media
  8. baseurl=file:///media
  9. enabled=1
  10. gpgcheck=0
  11. [root@localhost ~]# yum -y install vim-enhanced bash-completion net-tools

5、可以给web1创建一个快照,方便后期还原

6、使用web1主机克隆web2主机和lvs主机,给web2配置IP为2.200,修改主机名为web2

给lvs主机另外添加一块网卡,两块网卡ens33配置ip为4.5,ens37配置IP为2.5,主机名为lvs

7、web2主机配置IP

  1. [root@localhost ~]# nmcli connection modify ens33 ipv4.method manual ipv4.address 192.168.2.200/24 connection.autoconnect yes
  2. [root@localhost ~]# nmcli connection up ens33

8、lvs主机配置IP

  1. [root@localhost ~]# nmcli connection modify ens33 ipv4.method manual ipv4.address 192.168.4.5/24 connection.autoconnect yes
  2. [root@localhost ~]# nmcli connection up ens33
  3. [root@localhost ~]# nmcli connection add ifname ens37 con-name ens37 type ethernet
  4. [root@localhost ~]# nmcli connection modify ens37 ipv4.method manual ipv4.address 192.168.2.5/24 connection.autoconnect yes
  5. [root@localhost ~]# nmcli connection up ens37

三、web1,web2部署web服务器

1、Web1:部署httpd服务

  1. [root@web1 ~]# yum -y install httpd
  2. [root@web1 ~]# echo 192.168.2.100 > /var/www/html/index.html
  3. [root@web1 ~]# systemctl restart httpd
  4. [root@web1 ~]# iptables -F #清空防火墙策略
  5. [root@web1 ~]# setenforce 0

2、Web2:部署httpd服务

  1. [root@web2 ~]# yum -y install httpd
  2. [root@web2 ~]# echo 192.168.2.200 > /var/www/html/index.html
  3. [root@web2 ~]# systemctl restart httpd
  4. [root@web2 ~]# iptables -F
  5. [root@web2 ~]# setenforce 0

四、配置LVS调度器

1、安装ipvsadm

  1. [root@lvs ~]# yum -y install ipvsadm

2、创建虚拟服务器

  1. [root@lvs ~]# ipvsadm -A -t 192.168.4.5:80 -s rr #rr为轮询算法
  2. [root@lvs ~]# ipvsadm -Ln #查看集群规则
  3. 添加real server
  4. [root@lvs ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.100:80 -m #默认是-g DR模式
  5. [root@lvs ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.200:80 -m
  6. [root@lvs ~]# ipvsadm -Ln

算法使用的是轮询,给服务器加了权重也不会查看,加权轮询(wrr),加权最小连接(wlc)的时候才会查看

3、Lvs开启路由转发

  1. [root@lvs ~]# cat /proc/sys/net/ipv4/ip_forward
  2. 0
  3. [root@lvs ~]# vim /etc/sysctl.conf //修改配置文件,设置永久规则
  4. ...
  5. net.ipv4.ip_forward = 1
  6. [root@lvs ~]# sysctl -p
  7. [root@lvs ~]# iptables -F
  8. [root@lvs ~]# setenforce 0

4、Web1、Web2配置网关为2.5(实现跨网段通信)

  1. [root@web1 ~]# nmcli connection modify ens33 ipv4.method manual ipv4.gateway 192.168.2.5
  2. [root@web2 ~]# nmcli connection up ens33
  3. [root@web2 ~]# nmcli connection modify ens33 ipv4.method manual ipv4.gateway 192.168.2.5
  4. [root@web2 ~]# nmcli connection up ens33
  5. 使用浏览器访问192.168.4.5进行页面测试,或者在lvs主机:curl 192.168.4.5

五、LVS-DR集群

1、环境准备

  1. 主机名 Ip地址 角色
  2. proxy ens33 192.168.4.5/24
  3. ens33:0 192.168.4.15/24 Lvs调度器
  4. web1 ens37 192.168.4.100/24
  5. lo:0 192.168.4.15/32 Web服务器
  6. web2 ens37 192.168.4.200/24
  7. lo:0 192.168.4.15/32 Web服务器

2、设置lvs服务器的VIP和DIP

配置DIP 地址4.5 之前已经配置好了,此时不用配置

配置Vip地址,注意:为了防止冲突,VIP必须要配置在网卡的虚拟接口!!!

  1. [root@lvs ~]# cp /etc/sysconfig/network-scripts/ifcfg-ens33{,:0} #网卡需要找到192.168.4.5所对应的网卡
  2. [root@lvs ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33:0
  3. TYPE=Ethernet
  4. BOOTPROTO=none
  5. NAME=ens33:0
  6. DEVICE=ens33:0
  7. ONBOOT=yes
  8. IPADDR=192.168.4.15
  9. PREFIX=24
  10. [root@lvs ~]# systemctl restart network
  11. [root@lvs ~]# ifconfig #会有ens33:0的ip

3、Web1、web2部署httpd服务,查看端口是否启动(前面试验做过可不用配置,如果是新的机器,参考案例一搭建web服务)

  1. [root@web1 ~]# ss -antlp | grep 80
  2. [root@web2 ~]# ss -antlp | grep 80

4、给web1和web2在添加一块网卡,找到 编辑虚拟机-添加网络适配器-完成,点击网络适配器-网络连接选择自定义- vmnet4

  1. [root@web1 ~]# ip a s #查看可以看到多出来的网卡

5、给web1配置RIP(真实的IP)

  1. [root@web1 ~]# nmcli connection add con-name ens37 ifname ens37 type ethernet
  2. [root@web1 ~]# nmcli connection modify ens37 ipv4.method manual ipv4.addresses 192.168.4.100/24 connection.autoconnect yes
  3. [root@web1 ~]# nmcli connection up ens37

6、给web2配置RIP(真实的IP)

  1. [root@web2 ~]# nmcli connection add con-name ens37 ifname ens37 type ethernet
  2. [root@web2 ~]# nmcli connection modify ens37 ipv4.method manual ipv4.addresses 192.168.4.200/24 connection.autoconnect yes
  3. [root@web2 ~]# nmcli connection up ens37

7、给web1伪装VIP地址

  1. [root@web1 ~]# cp /etc/sysconfig/network-scripts/ifcfg-lo{,:0}
  2. [root@web1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0
  3. DEVICE=lo:0
  4. IPADDR=192.168.4.15 #ip地址
  5. NETMASK=255.255.255.255 #子网掩码,强制4个255
  6. NETWORK=192.168.4.15 #网络位
  7. BROADCAST=192.168.4.15 #广播地址
  8. ONBOOT=yes #开机启动
  9. NAME=lo:0

此时还不能重启网络,因为会产生地址冲突,需要修改内核参数

  1. [root@web1 ~]# vim /etc/sysctl.conf
  2. net.ipv4.conf.all.arp_ignore = 1
  3. net.ipv4.conf.lo.arp_ignore = 1
  4. net.ipv4.conf.lo.arp_announce = 2
  5. net.ipv4.conf.all.arp_announce = 2
  6. #当有arp广播问谁是192.168.4.15时,本机忽略改ARP广播,不做任何回应,
  7. #本机不要向外宣告自己的lo回环地址是192.168.4.15
  8. [root@web1 ~]# sysctl -p #使配置生效
  9. [root@web1 ~]# systemctl restart network

8、给web2伪装VIP地址

  1. [root@web1 ~]# scp /etc/sysconfig/network-scripts/ifcfg-lo:0 192.168.4.200:/etc/sysconfig/network-scripts/
  2. [root@web1 ~]# scp /etc/sysctl.conf 192.168.4.200:/etc/

9、web2主机执行sysctl -p ,重启网络,使配置生效

  1. [root@web2 ~]# sysctl -p
  2. [root@web2 ~]# systemctl restart network

六、创建LVS-DR集群

1、lvs调度器安装软件并部署LVS-DR模式调度器

安装软件(如果已经安装,此步骤可以忽略)

  1. [root@lvs~]# yum -y install ipvsadm

2、清理之前实验的规则,创建新的集群服务器规则

  1. [root@lvs~]# ipvsadm -C #清空所有规则
  2. [root@lvs ~]# ipvsadm -A -t 192.168.4.15:80 -s rr

3、添加真实服务器(-g参数设置LVS工作模式为DR模式,默认为DR)

  1. [root@lvs ~]# ipvsadm -a -t 192.168.4.15:80 -r 192.168.4.100 -g
  2. [root@lvs ~]# ipvsadm -a -t 192.168.4.15:80 -r 192.168.4.200
  3. [root@lvs ~]# ipvsadm -Ln

4、检查路由转发功能是否打开

  1. [root@lvs ~]# cat /proc/sys/net/ipv4/ip_forward #1为开启,0为关闭
  2. 1

最后防火墙和selinux一定要关闭

使用浏览器访问192.168.4.15进行页面刷新测试

尝试CentOS8---部署集群(生产环境7.9为好)的更多相关文章

  1. Database基础(七):部署集群基础环境、MySQL-MMM架构部署、MySQL-MMM架构使用

    一.部署集群基础环境 目标: 本案例要求为MySQL集群准备基础环境,完成以下任务操作: 数据库授权 部署MySQL双主多从结构 配置本机hosts解析记录 方案: 使用4台RHEL 6虚拟机,如下图 ...

  2. Redis集群生产环境源码安装

    安装redis集群  根据各人单位生产环境用户搭建一.安装环境    操作系统:centos7.6 关闭防火墙.关闭selinux redis1:192.168.26.128 redis2:192.1 ...

  3. elasticsearch7.5.0+kibana-7.5.0+cerebro-0.8.5集群生产环境安装配置及通过elasticsearch-migration工具做新老集群数据迁移

    一.服务器准备 目前有两台128G内存服务器,故准备每台启动两个es实例,再加一台虚机,共五个节点,保证down一台服务器两个节点数据不受影响. 二.系统初始化 参见我上一篇kafka系统初始化:ht ...

  4. apache2.4配置weblogic12c集群(linux环境)

    首先确定环境已装apache2.4,没装的话可以看下这篇文章apache2.4一键脚本安装(linux环境) 1.下载apache分发模块mod_wl_24.so 下载apache2.4的weblog ...

  5. kubernetes实战之部署一个接近生产环境的consul集群

    系列目录 前面我们介绍了如何在windows单机以及如何基于docker部署consul集群,看起来也不是很复杂,然而如果想要把consul部署到kubernetes集群中并充分利用kubernete ...

  6. MySQL 8 InnoDB 集群生产部署

    生产部署InnoDB集群 1.先决条件 InnoDB集群使用组复制技术,所以InnoDB中的实例需要满足组复制要求.可以查看MySQL文档中组复制相关的部分,也可以通过AdminAPI提供的dba.c ...

  7. Kubernetes容器集群管理环境 - 完整部署(中篇)

    接着Kubernetes容器集群管理环境 - 完整部署(上篇)继续往下部署: 八.部署master节点master节点的kube-apiserver.kube-scheduler 和 kube-con ...

  8. Kubernetes容器集群管理环境 - 完整部署(下篇)

    在前一篇文章中详细介绍了Kubernetes容器集群管理环境 - 完整部署(中篇),这里继续记录下Kubernetes集群插件等部署过程: 十一.Kubernetes集群插件 插件是Kubernete ...

  9. [转贴]CentOS7.5 Kubernetes V1.13(最新版)二进制部署集群

    CentOS7.5 Kubernetes V1.13(最新版)二进制部署集群 http://blog.51cto.com/10880347/2326146   一.概述 kubernetes 1.13 ...

  10. Kubernetes容器集群管理环境 - Prometheus监控篇

    一.Prometheus介绍之前已经详细介绍了Kubernetes集群部署篇,今天这里重点说下Kubernetes监控方案-Prometheus+Grafana.Prometheus(普罗米修斯)是一 ...

随机推荐

  1. IO在指定目录建文件

    path= "d:\\Project\\log\\log.txt"; File file = new File(path); //创建文件目录 if(!file.getParent ...

  2. MySql创建表遇到的问题

    SQL语句如下: CREATE TABLE IF NOT EXISTS `student`{ `id` INT(4) NOT NULL COMMENT '学号', `name` VARCHAR(30) ...

  3. windows 7 安装 vmtools 解决心得

    win7 系统安装vmtools 他有几种报错 我见过三种 一种是sp0升级到sp1很恶心 升级到sp1还需要升级到sp2 第二种是 VGA服务缺失 他这个缺失之后需要补丁 第三种就是 安装得序无法自 ...

  4. centos虚拟机yum update报错Another app is currently holding the yum lock; waiting for it to exit...

    1.运行yum update报错 [root@localhost ~]# yum update已加载插件:fastestmirror, langpacks/var/run/yum.pid 已被锁定,P ...

  5. C# EF框架的入门使用

    如何构建数据模型 新建项 ADO.NET 实体模型 设置链接 链接字符串需要选择"是,包含敏感数据 注意:EF的框架引用的表应该要存在主键,程序引用中要包含 using System.Dat ...

  6. WinForm中的MVC模式--MVP模式

    本文主要介绍MVC模式在WINFORM中的实现,其实砖家们都称它为MVP模式,小弟E文不太好,真的是记不住那个P怎么拼写的.. MVC模式主要解决的问题就是将表示层和业务层进行分离,在以往做WINFO ...

  7. 网站下/.git/index查看

    遇见有些网站目录中存在 http://target.com/.git/index 由于index是二进制文件 下载回来本地查看 初始化 下载到.git目录 git checkout-index -a

  8. mysql数据库用sql语句在指定的一个字段后面添加一个字段

    alert table (新增列的表名)   add (新列名) comment (添加备注)+[after  + 要跟随的字段名]可写可不写 ALTER TABLE ch_poliy_info AD ...

  9. ubuntu14.04 cm12.0 genymotion

    前几天在ubuntu14.04编译过android5.0.1源码,但是呢?不知怎么运行不起来,后来又试了试把img文件在win平台运行虚拟机不知怎么还是不行,再后来想通过刷机运行学习framework ...

  10. C# Set集合

    包含不重复元素的集合称为"集(set)"..NET Framework包含两个集HashSet<T>和SortedSet<T>,它们都实现ISet<T ...