多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
* [ ] 我们有三台master,必须要做负载均衡,我们用haproxy来做负载均衡,为了避免单点故障,我们用2台haproxy加上keepalived来做高可用 * [ ] 安装haproxy和keepalived * [ ] apt-get install haproxy * [ ] apt-get install keepalived # 配置haproxy ### 安装好了haproxy后,编辑haproxy的配置文件: ``` vim /etc/haproxy/cfg.conf global log 127.0.0.1 local0 info maxconn 4096 chroot /var/lib/haproxy user haproxy group haproxy daemon defaults log global mode tcp timeout connect 5000ms timeout client 50000ms timeout server 50000ms listen stats bind *:9000 mode http stats enable stats hide-version stats uri /stats stats refresh 30s stats realm Haproxy\ Statistics stats auth admin:P@ssw0rd frontend k8s-api bind *:6443 mode tcp option tcplog default_backend k8s-api backend k8s-api mode tcp option tcplog option tcp-check balance leastconn default-server inter 10s downinter 5s rise 2 fall 2 slowstart 60s maxconn 250 maxqueue 256 weight 100 server k8s-master1 192.168.11.212:6443 check server k8s-master2 192.168.11.213:6443 check server k8s-master3 192.168.11.214:6443 check ``` # 两台haproxy的配置文件一样我们通过keepalived来对haproxy做主从 启动haproxy systemctl start haproxy 部署keealived,这里也给出配置文件 ``` root@ubuntu:/etc/keepalived# ls check_haproxy.sh keepalived.conf #!/bin/sh if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ]; then systemctl restart haproxy fi sleep 2 if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ]; then killall keepalived fi ``` * * * * * ``` cat keepalived.conf ! Configuration File for keepalived #global setting , notify email setting global_defs { #存在于同一个网段中,一组keepalived的各个节点都有不同的名字 #在全局设置中,我们还可以设置管理员的email信息等。 router_id LVS_V1 } #这个是我们在上一小结讲到的haproxy检查脚本,我们保存在这个文件中(注意文件权限) vrrp_script chkhaproxy { script "/etc/keepalived/check_haproxy.sh" #每10秒钟,检查一次 interval 10 } #keepalived实例设置,是最重要的设置信息 vrrp_instance VI_1 { #state状态MASTER表示是主要工作节点。 #一个keepalived组中,最多只有一个MASTER节点,当然也可以没有 state MASTER #实例所绑定的网卡设备,我的网卡设备是ens33。您按照您自己的来 interface ens160 #同一个keepalived组,节点的设置必须一样,这样才会被识别 virtual_router_id 52 #节点优先级,BACKUP的优先级一定要比MASTER的优先级低 priority 100 #组播信息发送间隔,两个节点设置必须一样 advert_int 1 #实际的ens33上的固定ip地址 mcast_src_ip 192.168.11.215 #验证信息,只有验证信息相同,才能被加入到一个组中。 authentication { auth_type PASS auth_pass 1111 } #虚拟地址和绑定的端口,如果有多个,就绑定多个 #dev 是指定浮动IP要绑定的网卡设备号 virtual_ipaddress { 192.168.11.230/24 dev ens160 } #设置的检查脚本 #关联上方的“vrrp_script chkhaproxy” track_script { chkhaproxy } } ``` !注意 节点优先级,BACKUP的优先级一定要比MASTER的优先级低 priority 100 这里就是来区分haproxy主从的关键点一定要写好 启动服务: systemctl start keepalived 检查: ip a 查看网卡是否出现了虚拟ip