怎么用Keepalived+HAProxy高可用集群K8S实现
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,今天小编给大家分享一下怎么用Keepalived+HAProxy高可用集群K8S实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完
千家信息网最后更新 2026年11月01日怎么用Keepalived+HAProxy高可用集群K8S实现
今天小编给大家分享一下怎么用Keepalived+HAProxy高可用集群K8S实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
准备环境:
| 主机 | ip |
|---|---|
| k8s-master01 | 192.168.10.4 |
| k8s-master02 | 192.168.10.5 |
| k8s-master03 | 192.168.10.6 |
| VIP | 192.168.10.150 |
架构图
注意:master集群采用奇数台数,3、5、7…
所有节点都进行hosts文件解析
tail -3 /etc/hosts192.168.10.4 k8s-master01192.168.10.5 k8s-master02192.168.10.6 k8s-master03
所有节点都要安装keepalived和haproxy软件
yum -y install haproxy keepalived
修改haproxy配置文件(所有节点配置相同)
最好选择2.x版本,当然这个版本也不影响使用,只是功能没有2.x版本多
vim /etc/haproxy/haproxy.cfgglobal maxconn 2000 ulimit-n 16384 log 127.0.0.1 local0 err stats timeout 30sdefaults log global mode http option httplog timeout connect 5000 timeout client 50000 timeout server 50000 timeout http-request 15s timeout http-keep-alive 15sfrontend monitor-in bind *:33305 mode http option httplog monitor-uri /monitorlisten stats bind *:8006 mode http stats enable stats hide-version stats uri /stats stats refresh 30s stats realm Haproxy\ Statistics stats auth admin:adminfrontend k8s-master bind 0.0.0.0:16443 bind 127.0.0.1:16443 mode tcp option tcplog tcp-request inspect-delay 5s default_backend k8s-masterbackend k8s-master mode tcp option tcplog option tcp-check balance roundrobin default-server inter 10s downinter 5s rise 2 fall 2 slowstart 60s maxconn 250 maxqueue 256 weight 100 server k8s-master01 192.168.10.4:6443 check server k8s-master02 192.168.10.5:6443 check server k8s-master03 192.168.10.6:6443 check
master01节点修改keepalived配置文件
vim /etc/keepalived/keepalived.conf! Configuration File for keepalivedglobal_defs { router_id LVS_DEVEL}vrrp_script chk_apiserver { script "/etc/keepalived/check_apiserver.sh" interval 2 weight -5 fall 3 rise 2}vrrp_instance VI_1 { state MASTER interface eth0 mcast_src_ip 192.168.10.4 virtual_router_id 51 priority 100 advert_int 2 authentication { auth_type PASS auth_pass K8SHA_KA_AUTH } virtual_ipaddress { 192.168.10.150/24 } track_script { chk_apiserver }master02节点修改keepalived配置文件
vim /etc/keepalived/keepalived.conf! Configuration File for keepalivedglobal_defs { router_id LVS_DEVEL}vrrp_script chk_apiserver { script "/etc/keepalived/check_apiserver.sh" interval 2 weight -5 fall 3 rise 2}vrrp_instance VI_1 { state BACKUP interface eth0 mcast_src_ip 192.168.10.5 virtual_router_id 51 priority 50 advert_int 2 authentication { auth_type PASS auth_pass K8SHA_KA_AUTH } virtual_ipaddress { 192.168.10.150/24 } track_script { chk_apiserver }}master03节点修改keepalived配置文件
vim /etc/keepalived/keepalived.conf! Configuration File for keepalivedglobal_defs { router_id LVS_DEVEL}vrrp_script chk_apiserver { script "/etc/keepalived/check_apiserver.sh" interval 2 weight -5 fall 3 rise 2}vrrp_instance VI_1 { state BACKUP interface eth0 mcast_src_ip 192.168.10.6 virtual_router_id 51 priority 50 advert_int 2 authentication { auth_type PASS auth_pass K8SHA_KA_AUTH } virtual_ipaddress { 192.168.10.150/24 } track_script { chk_apiserver }}所有节点创建健康检查脚本
vim /etc/keepalived/check_apiserver.sh#!/bin/basherr=0for k in $(seq 1 5)do check_code=$(pgrep haproxy) if [[ $check_code == "" ]]; then err=$(expr $err + 1) sleep 5 continue else err=0 break fidoneif [[ $err != "0" ]]; then echo "systemctl stop keepalived" /usr/bin/systemctl stop keepalived exit 1else exit 0fi
启动haproxy与keepalived服务
systemctl daemon-reload systemctl enable --now haproxysystemctl enable --now keepalived
可以用ping和telnet命令测试一下vip的可用性
ping 192.168.10.150PING 192.168.10.150 (192.168.10.150) 56(84) bytes of data.64 bytes from 192.168.10.150: icmp_seq=1 ttl=64 time=1.60 ms64 bytes from 192.168.10.150: icmp_seq=2 ttl=64 time=0.519 ms64 bytes from 192.168.10.150: icmp_seq=3 ttl=64 time=0.874 ms64 bytes from 192.168.10.150: icmp_seq=4 ttl=64 time=0.786 ms^C--- 192.168.10.150 ping statistics ---4 packets transmitted, 4 received, 0% packet loss, time 3009msrtt min/avg/max/mdev = 0.519/0.946/1.606/0.403 mstelnet 192.168.10.150 16443Trying 192.168.10.150...Connected to 192.168.10.150.Escape character is '^]'.Connection closed by foreign host.
再尝试一下断开vip所在节点的keepalived,看ip是否漂移,如果vip漂移至另一节点则代表成功
以上就是"怎么用Keepalived+HAProxy高可用集群K8S实现"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。
节点
文件
配置
知识
篇文章
集群
版本
内容
不同
很大
相同
健康
成功
主机
代表
功能
只是
可用性
台数
命令
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咖啡豆
耶加雪菲
互联网科技园
保险科技 互联网保险
蓝思科技飞鸽互联网
苏州找大状互联网科技有限公司
互联网和科技技术
菲比寻常互联网科技
碳银互联网科技有限公司
互联网科技的未来发展
团飞科技与伯堂互联网服务平台
现代互联网科技股
互联网科技创新服务
科技互联网大厂
玉溪互联网科技怎么选
上海京穆互联网科技有限公司
郑州欣桑互联网科技有限公司
济南小医互联网科技有限公司招聘
互联网时代科技型公司的机会
平安好医生打造互联网科技医疗
碳银互联网科技
广州宏创互联网科技
互联网科技类展会
成都互联网科技公司100强
互联网科技革命什么开始
阿里互联网科技企业
云南互联网科技学费
互联网科技收购价值
北京品多多互联网科技有限公司
河南商务圈互联网科技有限公司