haproxy(grpc)+keepalived

1 篇文章 0 订阅
1 篇文章 0 订阅

haproxy(grpc)+keepalived

一、安装haproxy

1,下载

1)公网下载地址:http://download.openpkg.org/components/cache/haproxy/
2)配置下载https://github.com/jinjianming/load-balancing
2,编译

tar -xvf haproxy-2.0.4.tar && cd haproxy-2.0.4/
 
make TARGET=custom ARCH=x86_64 PREFIX=/usr/local/haproxy
 
make install PREFIX=/usr/local/haproxy
 
/usr/local/haproxy/sbin/haproxy -v

在这里插入图片描述
3,启动

/usr/local/haproxy/sbin/haproxy -f /etc/haproxy/haproxy2.0.cfg

配置

#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
    # to have these messages end up in /var/log/haproxy.log you will
    # need to:
    #
    # 1) configure syslog to accept network log events.  This is done
    #    by adding the '-r' option to the SYSLOGD_OPTIONS in
    #    /etc/sysconfig/syslog
    #
    # 2) configure local2 events to go to the /var/log/haproxy.log
    #   file. A line like the following can be added to
    #   /etc/sysconfig/syslog
    #
   # local0.*                       /data/log/haproxy.log
    #
    log         127.0.0.1 local0
    nbproc      1
    maxconnrate  300
    maxcomprate  300
    maxsessrate  500
    chroot      /usr/local/haproxy     #部署路径
    pidfile     /usr/local/haproxy/haproxy.pid   #pid文件
    #ulimit -n   50000
    maxconn     30000
    user        haproxy
    group       haproxy
    daemon
    # turn on stats unix socket
    stats socket /usr/local/haproxy/stats
#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
    mode                    http
    log                     global
    option                  dontlognull
    option                  redispatch
    option                  http-use-htx
    option                  logasap
    option                  httplog
    retries                 3
    timeout http-request    100s
    timeout queue           1m
    timeout connect         5m
    timeout client          5m
    timeout server          5m
    timeout connect         5m
    timeout http-keep-alive 100s
    timeout check           10s
    maxconn                 100000
#--------------------------------------
#monitor
#--------------------------------------
listen admin_stats
    stats enable
    bind 0.0.0.0:8089 #监控端口设置
    mode http
    log global
    maxconn 10
    stats uri /stats  #登录监控子路径配置
    stats realm welcome\ Haproxy
    stats auth admin:admin  #监控的账号密码
    stats admin if TRUE
    option httplog
    stats refresh 30s
    stats hide-version
 
 
#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
 
frontend wx_idl_server  #frontend名称
  bind *:8051 proto h2  #haproxy的端口 proto h2此配置为更好调度grpc如果是http需要删除掉
  default_backend wx_idl_server
 
#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
 
backend wx_idl_server
  balance leastconn  #负载策略 leastconn为 最少连接者先处 roundrobin # 轮询,软负载均衡基本都具备这种算法 balance static-rr # 根据权重,建议使用 等等。
  #option  tcplog
  server s1 192.168.1.2:30051 check proto h2 weight 1 maxconn 200 #负载地址,proto h2此配置为更好调度grpc如果是http需要删除掉
  server s2 192.168.1.3:30051 check proto h2 weight 1 maxconn 200

4,使用system管理haproxy

vim /lib/systemd/system/haproxy.service

[Unit]
Description=HAProxy Load Balancer
After=syslog.target network.target
 
[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/haproxy
ExecStart=/usr/local/haproxy/sbin/haproxy -f /etc/haproxy/haproxy2.0.cfg  $OPTIONS
ExecReload=/bin/kill -USR2 $MAINPID
 
[Install]
WantedBy=multi-user.target

chmod 754 /lib/systemd/system/kafka.service
systemctl daemon-reload
systemctl start haproxy

二、安装keepalived及配置

1)公网下载地址:https://www.keepalived.org/download.html
2,编译

tar -zxvf /home/keepalived-2.0.10.tar.gz
 cd keepalived-2.0.10/
 ./configure --prefix=/usr/local/keepalived
 
编译过程中出现的错误:
*** WARNING - this build will not support IPVS with IPv6. Please install libnl/libnl-3 dev libraries to support IPv6 with IPVS.
解决方案:
yum install -y libnl libnl-devel
继续编译,若出现下面错误
configure: error: libnfnetlink headers missing
解决方案:
 yum install -y libnfnetlink-devel
继续编译,然后安装
./configure --prefix=/usr/local/keepalived
 
make && make install
制作快捷启动,在源文件的目录/opt/software/keepalived-2.0.10/keepalived/etc/init.d下有两个个快捷启动文件和生成/usr/local/keepalived目录下一个配置文件需要复制,具体执行如下命令:
cp /home/keepalived-2.0.10/keepalived/etc/init.d/keepalived   /etc/init.d/
 # 需要提前在/etc下创建keepalived目录
mkdir  -p /etc/keepalived
##cp之前先改好配置文件如下附件。
cp /usr/local/keepalived/etc/keepalived/keepalived.conf   /etc/keepalived/
 
cp /home/keepalived-2.0.10/keepalived/etc/sysconfig/keepalived    /etc/sysconfig/keepalived
 
systemctl daemon-reload
 
 
这样就可以执行service keepalived [start | stop | reload | restart ]命令。
启动报“Starting keepalived: /bin/bash: keepalived: command not found”错误:
解决方案:
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
或者
systemctl start keepalived

3,keeplived-1的配置

! Configuration File for keepalived
 
global_defs {
    router_id LVS_DEVEL
    vrrp_skip_check_adv_addr
    vrrp_garp_interval 0
    vrrp_gna_interval 0
}
vrrp_script chk_haproxy {
    script "/usr/bin/killall -0 haproxy"  #检查haproxy状态
    interval 2
    weight -4     #当检查失败减4个权重
}
vrrp_instance VI_1 {
    state MASTER  #当前角色为master
    interface bond4  #网卡名称
    virtual_router_id 152  #路由id,要在整个网段中唯一切与slave相同
    priority 100
    nopreempt  #设置不抢占模式当自身恢复后不会抢占vip
    unicast_src_ip 10.96.37.53  #本地ip
    unicast_peer {
        10.96.37.54   #slave的IP地址
    }
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass passAI
    }
    virtual_ipaddress {
        10.96.37.74/24   #虚ip
    }
    track_script {
        chk_haproxy
    }
 
}

keeplived-2的配置

! Configuration File for keepalived
 
global_defs {
    router_id LVS_DEVEL
    vrrp_skip_check_adv_addr
    vrrp_garp_interval 0
    vrrp_gna_interval 0
}
vrrp_script chk_haproxy {
    script "/usr/bin/killall -0 haproxy"
    interval 2
    weight -4
}
vrrp_instance VI_1 {
    state BACKUP
    interface bond4
    virtual_router_id 152
    priority 99
    unicast_src_ip 10.96.37.54
    unicast_peer {
     10.96.37.53
    }
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass passAI
    }
    virtual_ipaddress {
        10.96.37.74/24
    }
    track_script {
        chk_haproxy
    }
 
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值