CentOS7 HAProxy 安装与配置

目录

HAProxy vs Nginxhttps:

下载安装:

启动:

访问控制台:

连接数据库:

haproxy的启动脚本配置:

balance算法

启动和停止管理节点

配置说明:

HAProxy 安装与配置

HAProxy vs Nginx https:

https://cloudinfrastructureservices.co.uk/haproxy-vs-nginx-whats-the-difference/

ha-proxy概述: ha-proxy是一款高性能的负载均衡软件。因为其专注于负载均衡这一些事情,因此与nginx比起来在负载均衡这件事情上做更好,更专业。

ha-proxy的特点: ha-proxy 作为目前流行的负载均衡软件,必须有其出色的一面。下面介绍一下ha-proxy相对LVS,Nginx等负载均衡软件的优点。

支持tcp / http 两种协议层的负载均衡,使得其负载均衡功能非常丰富。 支持8种左右的负载均衡算法,尤其是在http模式时,有许多非常实在的负载均衡算法,适用各种需求。 性能非常优秀,基于单进程处理模式(和Nginx类似)让其性能卓越。 拥有一个功能出色的监控页面,实时了解系统的当前状况。 功能强大的ACL支持,给用户极大的方便

下载安装:

官网地址:https://www.haproxy.org/#tact

注:以haproxy-ss-LATEST.tar.gz为例

$>wget https://www.haproxy.org/download/2.8/src/snapshot/haproxy-ss-LATEST.tar.gz

$>tar -zxvf haproxy-ss-LATEST.tar.gz

$>mv haproxy-ss-2023*** haproxy2.7

$>cd haproxy2.7

TARGET参数查看

$> uname -r

3.10.0-1160.el7.x86_64

$>make TARGET=linux31 

注意:TARGET必须大写,如果缺少gcc则需安装gcc

$> yum -y install gcc automake autoconf libtool make

$>make install PREFIX=/usr/local/haproxy 

注意:PREFIX必须大写

$>cd /usr/local/haproxy/

$> mkdir conf

$> cd conf/

$> cp /home/haproxy/haproxy-2.7.3/examples/option-http_proxy.cfg haproxy.cfg

haproxy.cfg 编辑(本机地址:192.168.106.101)

global

        maxconn         4000

        ulimit-n        16384

        log             127.0.0.1 local0

        user            root

        group           root

        chroot          /usr/local/haproxy

        pidfile         /usr/local/haproxy/conf/haproxy.pid

        daemon

        stats socket    /usr/local/haproxy/stats

defaults

    mode        tcp

    log         global

    option      tcplog

    option      dontlognull

    option      http-server-close

    option      redispatch

    retries                     3

    timeout     http-request    10s

    timeout     queue           1m

    timeout     connect         10s

    timeout     client          1m

    timeout     server          1m

    timeout     http-keep-alive 10s

    timeout     check           10s

    maxconn                     3000

frontend  mysql

        bind    0.0.0.0:63306  # mysql绑定端口

        mode    tcp

        log     global

        default_backend mysql_server

        #balance roundrobin

        #server         mysql1 192.168.106.102:33062    

        #server         mysql2 192.168.108.133:33063

backend  mysql_server

    balance leastconn

    server  mysql1 192.168.106.102:33062 check inter 5s rise 2 fall 3

    server  mysql2 192.168.106.103:33063 check inter 5s rise 2 fall 3

    #rise 2是2次正确认为服务器可用,fall 3是3次失败认为服务器不可用

listen haproxy_stats

        bind 0.0.0.0:8089  #控制台访问端口

        option httplog

        log global

        stats enable

        mode http

        maxconn 100

        stats refresh 30s

        stats uri /admin-status  #控制台访问地址

        stats realm Haproxy\ Statistics

        stats auth admin:admin #用这个账号登录,可以自己设置

        stats hide-version

启动:

/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg

访问控制台:

连接数据库:

地址:192.168.106.101:63306 用户名密码与代理的192.168.106.102/103相同

连接报错:遇到reading initial communication packet问题

查找MYSQL配置文件:

检查my.cnf,设置过小innodb_buffer_pool_size = 18M ,调整为innodb_buffer_pool_size = 1024M

如果还不能连接则采用下面方法;

1、修改mysql配置文件

vi /etc/my.cnf(跳过域名解析)

[mysqld]段加skip-name-resolve

2、修改hosts.allow

vi /etc/hosts.allow加上:

mysqld : ALL : ALLOW

mysqld-max : ALL :ALLOW

haproxy的启动脚本配置:

    $>  cd /usr/local/java/haproxy2.7/examples

$>  cp haproxy.init /etc/init.d/haproxy

$>  vim /etc/init.d/haproxy

修改两个位置:

 ​​​​​​​​​​​​​​​​​​​​​​​​​​​​   

    haproxy命令所在的位置:BIN=/usr/local/haproxy/sbin/haproxy

    haproxy配置所在的位置:CFG=/usr/local/haproxy/conf/haproxy.cfg

$>  chmod +x /etc/init.d/haproxy

$>  service haproxy start

$>  /etc/init.d/haproxy

    Usage: haproxy {start|stop|restart|reload|condrestart|status|check}

    测试下:

    $>  /etc/init.d/haproxy status

     haproxy (pid  54309) 正在运行...

    $>  /etc/init.d/haproxy stop

     Shutting down haproxy:                                     [确定]

    $>  /etc/init.d/haproxy status

     haproxy 已停

    $>  /etc/init.d/haproxy start

     Starting haproxy:                                          [确定]

    $>  /etc/init.d/haproxy reload

    $>  /etc/init.d/haproxy condrestart

     Shutting down haproxy:                                     [确定]

     Starting haproxy:                                          [确定]

    $>  /etc/init.d/haproxy check

     Configuration file is valid

balance算法

roundrobin:支持权重的运行时调整,支持慢启动;每个后端中最多支持4095个server。

leastconn:推荐使用在具有较长会话的场景中,例如MySQL、LDAP等。

连接数量最少的服务器接收连接。循环在相同负载的服务器组中执行,以确保使用所有服务器。建议在需要很长会话的地方使用此算法,如LDAP、SQL、TSE等……但是不太适合使用短会话(如HTTP)的协议。该算法是动态的,这意味着服务器的权重可以动态调整,例如,慢启动。

first:根据服务器在列表中位置,自上而下进行调度;前面服务器连接数达到上限,新请求才会分配给下一台服务。

source:源IP地址被散列并除以总数正在运行的服务器的权重,以指定哪个服务器将接收该请求。这确保了相同的客户端IP地址将总是到达相同的服务器,只要没有服务器宕机或宕机。

uri:对URI的左半部分做hash计算,并由服务器总权重相除以后派发至某挑出的服务器。

static-rr:静态算法:不支持权重的运行时调整及慢启动;后端主机数量无上限。

每台服务器根据各自的权重依次使用。这个算法与roundrobin类似,只是它是静态的,这意味着动态地更改服务器的权重不会有任何影响。另一方面,它对服务器的数量没有设计限制,当一个服务器启动时,它总是在重新计算完整的映射后立即被重新引入集群。它运行时使用的CPU也稍微少一些(大约-1%)。

url_param:对用户请求的uri的部分中的参数的值作hash计算,并由服务器总权重相除以后派发至某挑出的服务器;通常用于追踪用户,以确保来自同一个用户的请求始终发往同一个Backend Server

hdr:对于每个http请求,此处由指定的http首部将会被取出做hash计算,并由服务器总权重相除以后派发至某挑出的服务器;没有有效值的会被轮询调度

rdp-cookie:将被查找并对每个传入的TCP请求进行散列处理,该名称不区分大小写。这种机制作为降级的持久性模式非常有用,因为它可以始终将相同的用户(或相同的会话ID)发送到相同的服务器,如果没有找到cookie,则使用普通的roundrobin算法

启动和停止管理节点

$>  service haproxy start

    Usage: haproxy {start|stop|restart|reload|condrestart|status|check}

Usage: haproxy {启动 |停止|重  启|重新加载|condrestart|查看状态|检查脚本}

启动:$>  service haproxy start

停止: $>  service haproxy stop

状态:$>  service haproxy status

Conditional 启动理解:

Conditional restart' in init.d scripts can be dangerous

(https://utcc.utoronto.ca/~cks/space/blog/linux/CondRestartDangerous)

从启动信息看是一样的:

配置说明:

lobal               #全局设置

    log 127.0.0.1   local0   #日志输出配置,所有日志都记录在本机,通过local0输出

    #log loghost    local0 info

    maxconn 4096             #最大连接数

    chroot /usr/local/haproxy

    uid 99                   #所属运行的用户uid

    gid 99                   #所属运行的用户组

    group haproxy            #用户组

    daemon                   #后台运行haproxy

    nbproc 1                 #启动1个haproxy实例

    pidfile /usr/local/haproxy/haproxy.pid  #将所有进程PID写入pid文件

    #debug

    #quiet

 

defaults             #默认设置

    #log    global

    log     127.0.0.1       local3      #日志文件的输出定向

    #默认的模式:tcp|http|health

    mode   http         #所处理的类别,默认采用http模式

    option  httplog      #日志类别,采用http日志格式`

    option  dontlognull

    option  forwardfor   #将客户端真实ip加到HTTP Header中供后端服务器读取

    option  retries 3    #三次连接失败则认证服务器不可用

    option  httpclose    #每次请求完毕后主动关闭http通道,haproxy不支持keep-alive,只>能模拟这种模式的实现

    retries 3            #3次连接失败就认为服务器不可用,主要通过后面的check检查

    option  redispatch   #当serverid对应的服务器挂掉后,强制定向到其他健康服务器

    option  abortonclose #当服务器负载很高时,自动结束掉当前队列中处理比较久的链接

    maxconn 2000         #默认最大连接数

 

    timeout connect 5000  #连接超时时间

    timeout client  50000 #客户端连接超时时间

    timeout server  50000 #服务器端连接超时时间

 

    stats   enable

    stats   uri /haproxy-stats   #haproxy监控页面的访问地址

    stats   auth test:test123    #设置监控页面的用户和密码

    stats   hide-version         #隐藏统计页面的HAproxy版本信息

 

frontend http-in              #前台

    bind    *:81

    mode    http

    option  httplog

    log     global

    default_backend htmpool   #静态服务器池

 

backend htmpool               #后台

    balance leastconn         #负载均衡算法

    option  httpchk HEAD /index.html HTTP/1.0    #健康检查

    server  web1 192.168.2.10:80 cookie 1 weight 5 check inter 2000 rise 2 fall 3

    server  web2 192.168.2.11:80 cookie 2 weight 3 check inter 2000 rise 2 fall 3

    # web1/web2:自定义服务器别名

    # 192.168.2.10:80:服务器IP:Port

    # cookie 1/2:表示serverid

    # weight: 服务器权重,数字越大分配到的请求数越高

    # check: 接受定时健康检查

    # inter 2000: 检查频率

    # rise 2: 两次检测正确认为服务器可用

    # fall 3: 三次失败认为服务器不可用

 

listen w.gdu.me 0.0.0.0:80

    option  httpchk GET /index.html

    server  s1 192.168.2.10:80 weight 3 check

    server  s3 192.168.2.11:80 weight 3 check

 

# Haproxy统计页面

# --------------------------------------------------------------------------------------------

listen haproxy_stats

    bind 0.0.0.0:1080  #侦听IP:Port

    mode http

    log  127.0.0.1 local 0 err #err|warning|info|debug]

    stats refresh 30s

    stats uri /haproxy-stats

    stats realm Haproxy\ Statistics

    stats auth admin:admin

    stats auth test:test

    stats hide-version

    stats admin if TRUE  #手工启用/禁用后端服务器

 

 

# 网站检测listen配置

# --------------------------------------------------------------------------------------------

listen site_status

    bind 0.0.0.0:1081

    mode http

    log  127.0.0.1 local0 err

 

    #网站健康检查URI,用来检测Haproxy管理的网站是否可能,正常返回200、异常返回500

    monitor-uri /site_status

 

    #定义网站down时的策略

    #当backend中的有效服务器数<1时,返回true

    acl site_dead nbsrv(denali_server) lt 1

    acl site_dead nbsrv(tm_server) lt 1

    acl site_dead nbsrv(mms_server) lt 1

 

    #当满足策略的时候返回http-500,否则返回http-200

    monitor fail if site_dead

 

    #声名一个监测请求的来源网络

    monitor-net 192.168.0.252/31

 

 

# https的配置方法

# --------------------------------------------------------------------------------------------

listen login_https_server

    bind 0.0.0.0:443   #绑定HTTPS的443端口

    mode tcp           #https必须使用tcp模式

    log global

    balance roundrobin

    option httpchk GET /member/login.jhtml HTTP/1.1\r\nHost:login.daily.taobao.net

    #回送给server的端口也必须是443

    server vm94f.sqa 192.168.212.94:443 check port 80 inter 6000 rise 3 fall 3

    server v215120.sqa 192.168.215.120:443 check port 80 inter 6000 rise 3 fall 3

 

 

# frontend配置

# --------------------------------------------------------------------------------------------

frontend http_80_in

    bind 0.0.0.0:80   #监听端口

    mode http         #http的7层模式

    log global        #使用全局的日志配置

    option httplog    #启用http的log

    option httpclose  #每次请求完毕后主动关闭http通道,HA-Proxy不支持keep-alive模式

    option forwardfor ##如果后端服务器需要获得客户端的真实IP需要配置次参数,将可以从Http Header中获得客户端IP

 

    #HAProxy的日志记录内容配置

    capture request header Host len 40              # 请求中的主机名

    capture request header Content-Length len 10    # 请求中的内容长度

    capture request header Referer len 200          # 请求中的引用地址

    capture response header Server len 40           # 响应中的server name

    capture response header Content-Length len 10   # 响应中的内容长度(可配合option logasap使用)

    capture response header Cache-Control len 8     # 响应中的cache控制

    capture response header Location len 20         # 响应中的重定向地址

 

 

    #ACL策略规则定义

    #-------------------------------------------------

    #如果请求的域名满足正则表达式返回true(-i:忽略大小写)

    acl denali_policy hdr_reg(host) -i ^(www.gemini.taobao.net|my.gemini.taobao.net|auction1.gemini.taobao.net)$

 

    #如果请求域名满足trade.gemini.taobao.net返回true

    acl tm_policy hdr_dom(host) -i trade.gemini.taobao.net

 

    #在请求url中包含sip_apiname=,则此控制策略返回true,否则为false

    acl invalid_req url_sub -i sip_apiname=

 

    #在请求url中存在timetask作为部分地址路径,则此控制策略返回true,否则返回false

    acl timetask_req url_dir -i timetask

 

    #当请求的header中Content-length等于0时返回true

    acl missing_cl hdr_cnt(Content-length) eq 0

 

 

    #ACL策略匹配相应

    #-------------------------------------------------

    #当请求中header中Content-length等于0阻止请求返回403

    #block表示阻止请求,返回403错误

    block if missing_cl

 

    #如果不满足策略invalid_req,或者满足策略timetask_req,则阻止请求

    block if !invalid_req || timetask_req

 

    #当满足denali_policy的策略时使用denali_server的backend

    use_backend denali_server if denali_policy

 

    #当满足tm_policy的策略时使用tm_server的backend

    use_backend tm_server if tm_policy

 

    #reqisetbe关键字定义,根据定义的关键字选择backend

    reqisetbe ^Host:\ img           dynamic

    reqisetbe ^[^\ ]*\ /(img|css)/  dynamic

    reqisetbe ^[^\ ]*\ /admin/stats stats

 

    #以上都不满足的时候使用默认mms_server的backend

    default_backend mms_server

 

    #HAProxy错误页面设置

    errorfile 400 /home/admin/haproxy/errorfiles/400.http

    errorfile 403 /home/admin/haproxy/errorfiles/403.http

    errorfile 408 /home/admin/haproxy/errorfiles/408.http

    errorfile 500 /home/admin/haproxy/errorfiles/500.http

    errorfile 502 /home/admin/haproxy/errorfiles/502.http

    errorfile 503 /home/admin/haproxy/errorfiles/503.http

    errorfile 504 /home/admin/haproxy/errorfiles/504.http

 

 

# backend的设置

# --------------------------------------------------------------------------------------------

backend mms_server

    mode http           #http的7层模式

    balance roundrobin  #负载均衡的方式,roundrobin平均方式

    cookie SERVERID     #允许插入serverid到cookie中,serverid后面可以定义

     

    #心跳检测的URL,HTTP/1.1¥r¥nHost:XXXX,指定了心跳检测HTTP的版本,XXX为检测时请求

    #服务器的request中的域名是什么,这个在应用的检测URL对应的功能有对域名依赖的话需要设置

    option httpchk GET /member/login.jhtml HTTP/1.1\r\nHost:member1.gemini.taobao.net

     

    #服务器定义,cookie 1表示serverid为1,check inter 1500 是检测心跳频率

    #rise 3是3次正确认为服务器可用,fall 3是3次失败认为服务器不可用,weight代表权重

    server mms1 10.1.5.134:80 cookie 1 check inter 1500 rise 3 fall 3 weight 1

    server mms2 10.1.6.118:80 cookie 2 check inter 1500 rise 3 fall 3 weight 2

 

 

backend denali_server

    mode http

    balance source     #负载均衡的方式,source根据客户端IP进行哈希的方式

    option allbackups  #设置了backup的时候,默认第一个backup会优先,设置option allbackups后所有备份服务器权重一样

 

    #心跳检测URL设置

    option httpchk GET /mytaobao/home/my_taobao.jhtml HTTP/1.1\r\nHost:my.gemini.taobao.net

 

    #可以根据机器的性能不同,指定连接数配置,如minconn 10 maxconn 20

    server denlai1 10.1.5.114:80 minconn 4 maxconn 12 check inter 1500 rise 3 fall 3

    server denlai2 10.1.6.104:80 minconn 10 maxconn 20 check inter 1500 rise 3 fall 3

    #备份机器配置,正常情况下备机不会使用,当主机的全部服务器都down的时候备机会启用

    server dnali-back1 10.1.7.114:80 check backup inter 1500 rise 3 fall 3

    server dnali-back2 10.1.7.114:80 check backup inter 1500 rise 3 fall 3

 

 

backend tm_server

    mode http

    balance leastconn   #负载均衡的方式,leastcon选择当前请求数最少的服务器

    option httpchk GET /trade/itemlist/prepayCard.htm HTTP/1.1\r\nHost:trade.gemini.taobao.net

    server tm1 10.1.5.115:80 check inter 1500 rise 3 fall 3

    server tm2 10.1.6.105:80 check inter 1500 rise 3 fall 3

 

 

#reqisetbe自定义关键字匹配backend部分

backend dynamic

    mode http

    balance source

    option httpchk GET /welcome.html HTTP/1.1\r\nHost:www.taobao.net

    server denlai1 10.3.5.114:80 check inter 1500 rise 3 fall 3

    server denlai2 10.4.6.104:80 check inter 1500 rise 3 fall 3

 

backend stats

    mode http

    balance source

    option httpchk GET /welcome.html HTTP/1.1\r\nHost:www.taobao.net

    server denlai1 10.5.5.114:80 check inter 1500 rise 3 fall 3

    server denlai2 10.6.6.104:80 check inter 1500 rise 3 fall 3

configure: error: OpenSSL EVP libraries are required

添加LDFLAGS参数执行成功:

LDFLAGS="$LDFAGS -L /opt/openssl/lib" ./configure --prefix=/usr/local/keepalived

安装keepalived

Keepalived 是一种高性能的服务器高可用或热备解决方案,Keepalived 可以用来防止服务器单点故障的发生,通过配合 Nginx 可以实现web服务的高可用。

Keepalived 是以 VRRP 协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。

$>wget https://www.keepalived.org/software/keepalived-2.2.7.tar.gz

$>tar xvf keepalived-2.2.7.tar.gz

$>cd keepalived-2.2.7

$>./configure --prefix=/usr/local/keepalived

$>make && make install

报错下载:yum -y install libnl libnl-devel

创建配置master文件keepalived.conf

$>vim /usr/local/keepalived/conf/keepalived.conf

! Configuration File for keepalived

# 第一部分是global全局配置 global全局配置

global_defs {

# 路由id:当前安装keepalived的节点主机标识符,保证全局唯一

   router_id LVS_1

   script_user root

   enable_script_security

   max_auto_priority 31

}

vrrp_script checkhaproxy {

    script "/usr/bin/check-haproxy.sh"

    interval 2

    weight -30

}

# 第二部分是vrrp相关配置 计算机节点设置 keepalived实例信息,VI_1为VRRP实例名称

vrrp_instance VI_1 {

    # 表示状态是MASTER主机还是备用机BACKUP

state MASTER

# vrrp实例绑定的当前服务器使用的网卡名称,用于发送VRRP包,使用命令ifconfig查看

interface ens192

# 保证主备节点一致即可 范围是0-255

virtual_router_id 51

# 权重,master权重一般高于backup,如果有多个,那就是选举,谁的权重高,谁就当选

priority 100

# 主备之间同步检查时间间隔,单位秒,默认为1s

    advert_int 1

# 认证权限密码,防止非法节点进入

authentication {

    # 指定认证方式。PASS简单密码认证(推荐)

        auth_type PASS

        # 指定认证使用的密码,最多8位

        auth_pass 6699

    }

    # 虚拟出来的ip,可以有多个(vip)注意:主备两台的vip都是一样的,绑定到同一个vip 可设置多个,一行一个

    virtual_ipaddress {

        192.168.116.100/24 dev ens192

    }

    # 检测进程脚本

    track_script {

        checkhaproxy

    }

}

第三部分是LVS相关配置,keepalived安装不需要配置第三部分,此内容供后续学习做参考

# 定义虚拟服务器

# 定义一个虚拟服务器,ip是virtual_address中定义的其中一个, 语法:ip+空格+服务端口

virtual_server 192.168.200.100 443 {

    # 健康检查时间间隔,单位:秒

    delay_loop 6

# 负载均衡调度算法,常用wlc或rr(调度算法为加权最小连接数)

# lvs支持8种不同的调度算法轮叫(rr)、加权轮叫(wrr)、最小连接(lc)、加权最小连接(wlc)、基于局部性最小连接(lblc)、带复制的基于局部性最少链接(lblcr)、目标地址散列(dh)和源地址散列(sh).

    lb_algo rr

    # 负载均衡转发规则。包括DR、NAT、TUN 3种,一般使用路由(DR)转发规则

    lb_kind NAT

    # http服务会话保持时间,单位:秒

    persistence_timeout 50

    # 转发协议,分为TCP和UDP两种

    protocol TCP

    # 真实服务器IP和端口,可以定义多个

    real_server 192.168.201.100 443 {

       # 负载权重,值越大,转发的优先级越高

        weight 1

        # http get方式健康检查

        HTTP_GET {

            url {

              path /

              digest ff20ad2481f97b1754ef3e12ecd3a9cc

            }

            url {

              path /mrtg/

              digest 9b3a0c85a887a256d6939da88aabd8cd

            }

            # 服务连接超时时长,单位:秒

            connect_timeout 3

            # 服务连接失败重试次数

            retry 3

            # 重试连接间隔,单位:秒

            delay_before_retry 3

        }

    }

}

创建检测文件check-haproxy.sh

$>vim vim /usr/bin/check-haproxy.sh

#!/bin/bash

count=`netstat -apn | grep -w 9443 | wc -l`

If [ $count -gt 0 ]; then

    exit 0

else

    exit 1

fi

如果只测试9443(可能其它端口包含9443),需要在grep加-w整词检测,如下命令:netstat -apn | grep -w 9443 | wc -l

创建配置备份服务keepalived.conf(第二台,第三台:priority 70)

$>vim /usr/local/keepalived/conf/keepalived.conf

! Configuration File for keepalived

global_defs {

   router_id LVS_2

   script_user root

   enable_script_security

   max_auto_priority 32

}

vrrp_script checkhaproxy {

    script "/usr/bin/check-haproxy.sh"

    interval 2

    weight -30

}

vrrp_instance VI_1 {

    state BACKUP

    interface ens192

    virtual_router_id 51

    priority 80

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 6699

    }

    virtual_ipaddress {

        192.168.116.100/24 dev ens192

    }

    track_script {

        checkhaproxy

    }

}

配置启动文件:keepalived.service

$>vim /usr/lib/systemd/system/keepalived.service

[Unit]

Description=LVS and VRRP High Availability Monitor

After=network-online.target syslog.target

Wants=network-online.target

Documentation=man:keepalived(8)

Documentation=man:keepalived.conf(5)

Documentation=man:genhash(1)

Documentation=https://keepalived.org

[Service]

Type=forking

PIDFile=/run/keepalived.pid

EnvironmentFile=-/usr/local/keepalived/conf/keepalived

ExecStart=/usr/bin/keepalived  $KEEPALIVED_OPTIONS

Restart=on-failure

RestartSec=5

LimitNOFILE=65536

[Install]

WantedBy=multi-user.target

配置启动参数:keepalived

$>vim /usr/local/keepalived/conf/keepalived

KEEPALIVED_OPTIONS="-f /usr/local/keepalived/conf/keepalived.conf -D"

$>systemctl daemon-reload && systemctl start keepalived && systemctl enable keepalived

用curl命令即可验证通过HAProxy 192.168.116.100:9443地址是否可以访问到kube-apiserver 服务:

$>curl -v -k https://192.168.116.100:9443

WARNING - script '/usr/bin/check-haproxy.sh' is not executable for uid:gid 0:0 - disabling

$>chmod744 /usr/bin/check-haproxy.sh

WARNING - default user 'keepalived_script' for script execution does not exist - please create.

这个错误的原因在于配置文件的错误,在global_defs中加入如下两行即可

   script_user root

   enable_script_security

  • 18
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值