Keepalived+HAProxy高可用集群K8S实现

目录

本文采用Keepalived+HAProxy的方式构建高可用集群。
当你如果你有硬件负载均衡设备当然更好了。

准备环境:

主机 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/hosts
192.168.10.4 k8s-master01
192.168.10.5 k8s-master02
192.168.10.6 k8s-master03

所有节点都要安装keepalived和haproxy软件

yum -y install haproxy keepalived

修改haproxy配置文件(所有节点配置相同)

最好选择2.x版本,当然这个版本也不影响使用,只是功能没有2.x版本多

vim /etc/haproxy/haproxy.cfg
global
  maxconn  2000
  ulimit-n  16384
  log  127.0.0.1 local0 err
  stats timeout 30s
defaults
  log global
  mode  http
  option  httplog
  timeout connect 5000
  timeout client  50000
  timeout server  50000
  timeout http-request 15s
  timeout http-keep-alive 15s
frontend monitor-in
  bind *:33305
  mode http
  option httplog
  monitor-uri /monitor
listen stats
  bind    *:8006
  mode    http
  stats   enable
  stats   hide-version
  stats   uri       /stats
  stats   refresh   30s
  stats   realm     Haproxy\ Statistics
  stats   auth      admin:admin
frontend 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-master
backend 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 keepalived
global_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 keepalived
global_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 keepalived
global_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/bash
err=0
for 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
    fi
done
if [[ $err != "0" ]]; then
    echo "systemctl stop keepalived"
    /usr/bin/systemctl stop keepalived
    exit 1
else
    exit 0
fi

启动haproxy与keepalived服务

systemctl daemon-reload
systemctl enable --now haproxy
systemctl enable --now keepalived

可以用ping和telnet命令测试一下vip的可用性

ping 192.168.10.150
PING 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 ms
64 bytes from 192.168.10.150: icmp_seq=2 ttl=64 time=0.519 ms
64 bytes from 192.168.10.150: icmp_seq=3 ttl=64 time=0.874 ms
64 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 3009ms
rtt min/avg/max/mdev = 0.519/0.946/1.606/0.403 ms
telnet 192.168.10.150 16443
Trying 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实现的详细内容,更多关于Keepalived+HAProxy实现K8S高可用集群的资料请关注我们其它相关文章!

(0)

相关推荐

  • Keepalived+HAProxy高可用集群K8S实现

    目录 本文采用Keepalived+HAProxy的方式构建高可用集群.当你如果你有硬件负载均衡设备当然更好了. 准备环境: 主机 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/hosts 192.168.10.4 k8s-ma

  • nginx搭建高可用集群的实现方法

    目录 Keepalived+Nginx 高可用集群(主从模式) Keepalived+Nginx 高可用集群(主从模式) 集群架构图 1.准备两台装有Nginx虚拟机 2.都需安装Keepalived yum install keepalived -y 查看是否安装成功 rpm -q -a keepalived 安装之后,在 etc 里面生成目录 keepalived,有文件 keepalived.conf 3.完成高可用配置(主从配置) 修改/etc/keepalived/keepalivec

  • Nginx实现高可用集群构建(Keepalived+Haproxy+Nginx)

    1.组件及实现的功能 Keepalived:实现对Haproxy服务的高可用,并采用双主模型配置; Haproxy:实现对Nginx的负载均衡和读写分离; Nginx:实现对HTTP请求的高速处理; 2.架构设计图 3.Keepalived部署 在两个节点上都需要执行安装keepalived,命令如下: $ yum -y install keepalived 修改 172.16.25.109 节点上 keepalived.conf 文件配置,命令如下 $ vim /etc/keepalived/

  • 运用.net core中实例讲解RabbitMQ高可用集群构建

    目录 一.集群架构简介 二.普通集群搭建 2.1 各个节点分别安装RabbitMQ 2.2 把节点加入集群 2.3 代码演示普通集群的问题 三.镜像集群 四.HAProxy环境搭建. 五.KeepAlived 环境搭建 一.集群架构简介 当单台 RabbitMQ 服务器的处理消息的能力达到瓶颈时,此时可以通过 RabbitMQ 集群来进行扩展,从而达到提升吞吐量的目的.RabbitMQ 集群是一个或多个节点的逻辑分组,集群中的每个节点都是对等的,每个节点共享所有的用户,虚拟主机,队列,交换器,绑

  • nginx高可用集群的实现过程

    这篇文章主要介绍了nginx高可用集群的实现过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.配置: (1)需要两台nginx服务器 (2)需要keepalived (3)需要虚拟ip 2.配置高可用的准备工作 (1)需要两台服务器192.168.180.113和192.168.180.112 (2)在两台服务器安装nginx (3)在两台服务器安装keepalived 3.在两台服务器安装keepalived (1)使用yum命令进行安

  • redis sentinel监控高可用集群实现的配置步骤

    目录 一.端口转发. 如果在一个主机里面,安装了两个redis实例,可以在项目里面配置IP端口,用iptables转发. iptables -t nat -A PREROUTING -p tcp --dport 6379 -j REDIRECT --to-ports 7379 当发生切换的时候,触发了脚本,执行语句.端口可以马上转发带正确的redis上面.参数的含义: 脚本配置: 脚本实例: #!/bin/bash iptables -t nat -I PREROUTING -p tcp --d

  • redis sentinel监控高可用集群实现的配置步骤

    目录 一.端口转发 二.修改HOST文件 三.用第三方代理haproxy 四.插曲 一.端口转发 如果在一个主机里面,安装了两个redis实例,可以在项目里面配置IP端口,用iptables转发. iptables -t nat -A PREROUTING -p tcp --dport 6379 -j REDIRECT --to-ports 7379 当发生切换的时候,触发了脚本,执行语句.端口可以马上转发带正确的redis上面.参数的含义: 脚本配置: 脚本实例: #!/bin/bash  i

  • centos环境下nginx高可用集群的搭建指南

    目录 1.概述 2.CentOS中nginx集群搭建 2.1 集群架构图 2.2 Keepalived 2.3 集群搭建准备 2.4 集群搭建 2.4.1 安装keepalived 2.4.2 配置keepalived.conf 2.4.3 编写nginx监测脚本 2.4.4 启动keepalived 2.4.5 启动nginx 2.4.6 测试 3.小结 4.参考文献 总结 1.概述 nginx单机部署时,一旦宕机就会导致整个服务的不可用,导致雪崩式效应.集群式部署是解决单点式雪崩效应的有效方

  • CentOS下RabbitMq高可用集群环境搭建教程

    CentOS下RabbitMq高可用集群环境搭建教程分享给大家. 准备工作 1.准备两台或多台安装有rabbitmq-server服务的服务器 我这里准备了两台,分别如下: 192.168.40.130 rabbitmq01 192.168.40.131 rabbitmq02 2.确保防火墙是关闭的3,官网参考资料 http://www.rabbitmq.com/clustering.html hosts映射 修改每台服务上的hosts文件(路径:/etc/hosts),设置成如下: 192.1

  • 基于 ZooKeeper 搭建 Hadoop 高可用集群 的教程图解

    一.高可用简介 Hadoop 高可用 (High Availability) 分为 HDFS 高可用和 YARN 高可用,两者的实现基本类似,但 HDFS NameNode 对数据存储及其一致性的要求比 YARN ResourceManger 高得多,所以它的实现也更加复杂,故下面先进行讲解: 1.1 高可用整体架构 HDFS 高可用架构如下: 图片引用自: https://www.edureka.co/blog/how-to-set-up-hadoop-cluster-with-hdfs-hi

随机推荐