技术共享

部署LVS keepalived做网站的高可用,高负载。

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

  • LVS keepalived

    • keepalived背景

      • 针对LVS的辅助工具,主要提供故障切换与健康检查。

      • 工作场景:作为调度器的双机热备,以及节点服务器的健康检查以及故障切换(删除条目)。

      • 借鉴了VRRP协议来实现高可用。

    • keepalived部署

      • 拓扑

        • 两台调度器之间实现高可用并实现对web服务器的健康状态检查,web服务器之间做一个负载均衡。

      • 两台调度器的配置

        • 准备前奏

          • 添加或关闭防火墙,内核安全机制也要关闭

          • 关闭NetworkManager

            • 该服务如果不关闭,漂移IP无法进行漂移

        • 安装keepalived并进行配置

          • 安装后先设置为开机自启

            • systemctl disable keepalived

          • 拷贝配置文件:在/etc/keepalived/keepalived

          • 配置文件详解

            • 全局配置部分

              • global_defs {

              • notification_email {

                • 该模块表示当keep发生切换操作后需要发送Email通知,以及发送给哪些邮件地址

              • [email protected]

                • 具体的邮件地址,每行一个

              • [email protected]

              • [email protected]

              • }

              • notification_email_from [email protected]

                • 该行定义了发送警报邮件的发送者是谁(发件人)

              • smtp_server 192.168.200.1

                • 表示可以用那台服务器的邮件服务发送邮件,通常可以使用127.0.0.1也就是本机提供该服务。

              • smtp_connect_timeout 30

                • 连接stmp服务的超时时间

              • router_id LVS_DEVEL

                • 机器标识:区分不同服务器的标识,对实际的服务的运行不产生影响,邮件服务快速定位

              • vrrp_skip_check_adv_addr

                • 不对master的宣告地址做检查,宽松的运行keepalived

              • vrrp_strict

                • 启用该项是除非恰当设置网络,否则不允许单播通信。

              • vrrp_garp_interval 0

                • 定期宣告IP地址所有权,当设置为0时仅在切换后做宣告

              • vrrp_gna_interval 0

              • }

            • vrrp实例部分

              • vrrp_instance VI_1 {

                • 实例名称,一个服务器可以有多个实例(应用场景)后面会写。

              • state MASTER

                • 确定初始状态的角色

                  • 在vrrp的选举循环中的init位置

              • interface eth0

                • 承载VIP的网卡,以自己为准

              • virtual_router_id 51

                • 每一个实例都必须用相同的VRID才能加入到同一个热备组。

              • priority 100

                • 因为VRRP采用优先级做选举master依据范围(0~255)0保留,255(IP地址拥有者)

              • advert_int 1

                • master的宣告报文间隔,以秒为单位(告诉其他backup)master还活着。

              • authentication {

                • 当其他的实例想要加入该热备组需要进行密码认证。

              • auth_type PASS

              • auth_pass 1111

              • }

              • virtual_ipaddress {

                • 虚拟VIP地址:每一个虚拟vip就代表着一个群集

              • 192.168.200.16

              • 192.168.200.17

              • 192.168.200.18

              • }

              • }

            • 虚拟服务器部分

              • virtual_server 192.168.200.100 443 {

                • 与实例中的VIP对应,是一个群集的开始

              • delay_loop 6

                • 健康检查的时间间隔

              • lb_algo rr