• lvs负载均衡


    1.集群

    集群:为解决某个特定问题将多个计算机组合起来形成一个单系统

    集群的目的就是为了解决系统的性能瓶颈

    1.1 集群的类型

    负载均衡集群:LB(loab blance)多个主机组成,每个主机只承担一部分访问请求,靠负载均衡算法来实现。

    高可用集群:HA(high availablity) 避免SPOF(single point of failuer)单点故障。系统当中有一部分组件出现故障,可以保障整个系统继续运行。

    1.2 集群的可靠性指标

    MTBF: mean time between failure 系统在正常运行期间无故障的平均时间,一般用小时或者天数来表示。MTBF值越高,系统的可靠性越高,出现的故障的概率也越小

    MTTR:系统从发生故障到恢复正常运行的平均时间,一般用小时或者天数表示。MTTR值越小,说明系统恢复故障的能力越强

    A:系统的可靠性指标 A值越高越好

    停机时间:

    计划内停机:指的预定时间内的维护或者维修时间。可以自定义

    计划外停机:运维人员主要关注的就是计划外。7*24小时

    1.3 设计集群时需要考虑的一些原则

    1.可扩展性:集群要有随时可以添加或者删除设备的能力。动态的扩缩容。

    2.可靠性:集群中如果有节点发送故障,可以快速检测并且自动切换。

    3.负载均衡:要合理的分配负载避免单个节点过载,影响整体性能。

    4.可维护性:能够方便的进行配置,部署,维护,监控,降低成本。

    5.安全性:防止恶意的攻击以及数据的泄密,数据丢失。

    6.易用性:相关的工作人员,可以方便的进入集群,能够快速的开发,部署,测试等等

    2.lvs集群

    2.1 lvs

    lvs:linux virtual server 只能部署在linux服务器上 通过内核层面,实现负载均衡的软件。

    主要作用:多个后端服务器组成一个高可用,高性能,负载均衡的高性能集群。通过负载均衡的算法将客户端请求发送到后端服务器。

    2.2 lvs集群当中的术语

    (1)VS(virtual server):lvs服务的逻辑名称,外部访问lvs集群时提供的一个虚拟ip地址和端口号

    (2)DS(director server):lvs集群中的主服务器或调度器,是整个lvs集群的核心。作用:接收客户端的请求转发到后端RS

    (3)RS(real server):lvs集群的后端的真实服务器的ip。作用:接收到DS请求后,由RS处理请求并返回响应结果

    (4)CIP(client ip):客户端的ip地址

    (5)VIP(virtual ip):对外提供访问的统一的、虚拟的ip地址

    (6)DIP(director ip):DS调度器在lvs内部使用的ip地址。作用:用于和RS进行通信

    (7)RIP(real ip):后端真实服务器的ip地址

    2.3 lvs的工作原理

    (1)客户端访问vip

    (2)DS调度器接收到请求,根据调度算法选择后端服务器RS,请求发送给RS

    (3)RS处理请求并将响应发送到DS调度器

    (4)DS会把RS真实服务器的响应包装成自己的响应,然后发送到客户端

    客户端不知道请求的真实服务器,也不知道响应的服务器是谁

    2.4 负载均衡的方式

    (1)NAT模式——地址转换(常用)

    (2)DR模式——直接路由(最常用)

    (3)TUN模式——隧道vpn协议(不用)【花钱】

    3.NAT模式

    工作原理:

    (1)在调度器上配置双网卡,一个指向内部,一个指向外部

    (2)配置一个可以和公网进行通信的vip

    (3)配置转发策略,如果访问vip,会把请求的数据转发到后台的RS。请求以报文的格式请求,调度器会修改目标ip地址和端口

    (4)RS处理完请求之后响应客户端。先到DS,调度器进行地址转换,把内网地址转换成公网地址,调度器响应给用户

    3.1配置

    nat模式的部署方式:

    负载调度器 :配置爽网卡 192.168.233.10(内网)12.0.0.1(ens36)

    二台后端web真实服务器:192.168.233.20 192.168.233.30

    一台NFS共享服务器:192.168.233.40

    全部关闭

    systemctl stop firewalld

    setenforce 0

    test2,3,4

    yum -y install nfs-utils rcpbind

    test2

    mkdir kgc benet

    echo "this is kgc" > /opt/kgc/index.html

    echo "this is benet" > /opt/benet/index.html

    vim /etc/exports

    /opt/kgc 192.168.233.0/24(rw,sync)

    /opt/benet 192.168.233.0/24(rw,sync)

    systemctl restart rpcbind

    systemctl restart nfs

    exportfs -rv

    showmount -e 192.168.233.40

    yum -y install httpd

    mount 192.168.233.40:/opt/kgc /var/www/html

    systemctl restart httpd

    test3:

    systemctl restart rpcbind

    systemctl restart nfs

    showmount -e 192.168.233.40

    systemctl restart httpd

    mount 192.168.233.40:/opt/benet /var/www/html

    curl 192.168.233.30

    test2

    vim /etc/sysconfig/network-scripts/ifcfg-ens33

    systemctl restart network

    test3

    vim /etc/sysconfig/network-scripts/ifcfg-ens33

    test1

    cd /etc/sysconfig/network-scripts

    cp ifcfg-ens33 ifcfg-ens36

    vim ifcfg-ens36

    ens33

    ens36

    systemctl restart network

    yum -y install iptables-services iptables

    yum -y install ipvsadm*

    iptables -F

    iptables -t nat -A POSTROUTING -s 192.168.66.0/24 -o ens36 -j SNAT --to 12.0.0.1

    iptables -t nat -vnL

    ipvsadm-save>/etc/sysconfig/ipvsadm

    ipvsadm -A -t 12.0.0.1:80 -s rr

    ipvsadm -a -t 12.0.0.1:80 -r 192.168.66.15:80 -m

    ipvsadm -a -t 12.0.0.1:80 -r 192.168.66.16:80 -m

    ipvsadm-save>/etc/sysconfig/ipvsadm

    systemctl restart ipvsadm.service

    vim /etc/sysctl.conf

    添加 net.ipv4.ip_forward=1

    sysctl -p

  • 相关阅读:
    Kubernetes 部署发布镜像(cubefile:0.4.0)
    【C语言】入门——结构体
    Tekla添加零件ContourPlate
    jdbc(DriverManager+Connection+Statement+ResultSet)+SQL注入+开启预编译+数据连接池
    跑步戴什么耳机比较好、精挑五款最佳跑步耳机推荐
    git提交代码产生冲突的解决方法
    PC端配置定位服务步骤(依赖于腾讯位置服务)
    Python3.9的69个内置函数(内建函数)介绍,并附简单明了的示例代码
    Kali 渗透WIFI
    Redis设置开机自启动
  • 原文地址:https://blog.csdn.net/qq_59980732/article/details/133989375