Centos8 déploie une haute disponibilité et un cluster à charge élevée keepalive

(1) Environnement expérimental : deux hébergeurs haute disponibilité, deux hébergeurs web


(2) Sur les serveurs Ha1 et Ha2, utilisez keepalived pour obtenir une haute disponibilité et une charge élevée

1. Configurez le planificateur de charge (Ha1, Ha2 sont identiques)

1.1. Désactiver le pare-feu et selinux

systemctl stop firewalld 
systemctl enable firewalld 
setenforce 0

1.2. Installer le service de haute disponibilité et l'outil ipvsadm

yum -y install ipvsadm keepalived
modprobe ip_vs
cat /proc/net/ip_vs

1.3. Configurer keeplived (Ha1 (principal) et Ha2 (veille) doivent être configurés)

#配置keeplived(Ha1、Ha2上都要设置)
cd /etc/keepalived/
cp keepalived.conf keepalived.conf.bak
vim keepalived.conf

global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 127.0.0.1     #邮件服务指向本地
   smtp_connect_timeout 30
   router_id LVS_01   #指定服务器名称,主备服务器名称不同
   vrrp_skip_check_adv_addr
  # vrrp_strict   #禁用vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {  #定义VRRP热备实例参数
    state MASTER   #指定热备状态,主:MASTER,备:BACKUP
    interface ens160   #指定承载地址的物理接口
    virtual_router_id 1   #指定虚拟路由器的ID号,主备保持一致
    priority 100     #指定服务器优先级,主:100,备:90
    advert_int 1   #通告间隔秒数(心跳频率)
    authentication {     #定义认证信息
        autu_type PASS      #认证类型
        auth_pass P@ssw0rd  #指定验证密码,主备保持一致
    }
    virtual_ipaddress {    #指定集群地址
        192.168.100.200
    }
}

virtual_server 192.168.100.200 80 {  #指定虚拟服务器地址、端口,定义虚拟服务器和web服务器参数
    delay_loop 6    #健康检查的间隔时间(秒)
    lb_algo rr     #指定调度算法,轮询(rr)
    lb_kind DR  #指定集群工作模式,直接路由(DR)
    persistence_timeout 50 #连接保持时间(秒)
    protocol TCP    #应用服务采用的是TCP协议

    real_server 192.168.100.37 80 {     #指定第一个web节点地址、端口
        weight 1            #节点的权重
        TCP_CHECK {
            connect_port 80         #添加检查的目标端口
            connect_timeout 3       #添加连接超时(秒)
            nb_get_retry 3          #添加重试次数
            delay_before_retry 4    #添加重试间隔
          }
        }
    real_server 192.168.100.38 80 {     #指定第二个web节点的地址、端口
        weight 1
        HTTP_GET {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 4
           }
        }
    }
注释:删除后面多余的配置
#启动keepalived
systemctl start keepalived

1.4. Sauvegarder les fichiers de configuration liés au serveur

! Configuration File for keepalived

global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_02
   vrrp_skip_check_adv_addr
  # vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens160
    virtual_router_id 1
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass P@ssw0rd
    }
    virtual_ipaddress {
        192.168.100.200
    }
}

virtual_server 192.168.100.200 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    persistence_timeout 50
    protocol TCP

    real_server 192.168.100.37 80 {
        weight 1
         TCP_CHECK {
            connect_port 80         
            connect_timeout 3       
            nb_get_retry 3          
            delay_before_retry 4
           } 
        }
    real_server 192.168.100.38 80 {
        weight 1
        HTTP_GET {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 4
           }
        }
    }

1.5. Démarrer le service keepalived

systemctl start keepalived
ip addr show dev ens160   #查看集群IP是否添加成功

1.6. Configurer la stratégie de distribution (maître, sauvegarde)

ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm
ipvsadm -C 
ipvsadm -A -t 192.168.100.200:80 -s rr
ipvsadm -a -t 192.168.100.200:80 -r 192.168.100.37:80 -g 
ipvsadm -a -t 192.168.100.200:80 -r 192.168.100.38:80 -g 
ipvsadm

ipvsadm -ln
ipvsadm-save > /etc/sysconfig/ipvsadm

1.7. Ajustez les paramètres de réponse du processus du noyau, désactivez la réponse du paramètre de redirection du noyau Linux

vim /etc/sysctl.conf
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens160.send_redirects = 0

sysctl -p

(3) Configurer des adresses IP virtuelles et ajouter des routes de bouclage pour les deux serveurs Web

1. Ajustez les paramètres du noyau

vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

sysctl -p

2. Configurez l'adresse de bouclage (l'adresse est l'adresse du cluster)

ifconfig  lo:0  192.168.100.200  netmask 255.255.255.255  broadcast 192.168.100.200

3. Ajouter un routage

route  add  -host  192.168.10.150  dev  lo:0

(4) Tester le cluster de services Web

1. Désactivez le pare-feu et selinux des deux serveurs Web

systemctl stop firewalld 
systemctl enable firewalld 
setenforce 0

2. Créez une page Web de test sur deux serveurs Web

/usr/share/nginx/html
rm -rf *
echo "web1:192.168.100.37" > index.html
echo "web2:192.168.100.38" > index.html

3. Redémarrez le serveur Web

systemctl restart nginx

4. Vérifiez le serveur hautement disponible, actuellement seul le serveur principal a une adresse IP virtuelle
Veuillez ajouter une description de l'imageVeuillez ajouter une description de l'image

5. Test d'accès client, réussir l'équilibrage de charge
insérez la description de l'image ici

6. Test du serveur haute disponibilité, arrêtez le serveur principal, vérifiez le serveur de sauvegarde, le serveur de sauvegarde a saisi avec succès l'adresse IP virtuelle
insérez la description de l'image ici
insérez la description de l'image ici
insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/qq_44484541/article/details/130319307
conseillé
Classement