用Keepalived搭建高可用集群
一、集群介紹
1、根據功能劃分為兩大類:高可用和負載均衡
2、高可用:一臺工作,另一臺冗余,當一臺服務器故障宕機時,另一臺服務器提供服務。開源軟件有heartbeat,keepalived.
3、負載均衡:有一臺服務器做分發器,負責把用戶的請求發送給后端處理,其他的服務器給用戶提供服務。開源軟件有LVS,keepalived,haproxy,nginx.商業的有F5,Netscaler.
二、keepalived介紹
1、keepalived 是采用VRRP協議實現高可用。keepalived 有三個模塊,core ,check,vrrp。core模塊是keepalived的核心,負責主進程啟動,維護和全局模塊的加載和解析,check模塊負責健康檢查,vrrp模塊用來實現VRRP協議。
三、用keepalived搭建高可用集群。
1、為兩臺機器安裝keepalived
yum install -y keepalived
2、為兩臺機器安裝nginx,其中IP為130的主機已經在之前安裝過,只需為另一臺安裝
yum install -y nginx
3、編輯130主機的keepalived的配置文件?vim /etc/keepalived/keepalived.conf?
1)首先清空keepalived.conf
> ?keepalived.conf
2)加入以下內容:
global_defs { notification_email { aming } notification_email_from root smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_script chk_nginx { script "/usr/local/sbin/check_ng.sh" interval 3 } vrrp_instance VI_1 { state MASTER interface ens33 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass aminglinux>com } virtual_ipaddress { 192.168.134.100 } track_script { chk_nginx } } 4、定義130主機上的監控腳本?vim /usr/local/sbin/check_ng.sh d=`date --date today +%Y%m%d_%H:%M:%S` n=`ps -C nginx --no-heading|wc -l` if [ $n -eq "0" ]; then /etc/init.d/nginx start n2=`ps -C nginx --no-heading|wc -l` if [ $n2 -eq "0" ]; then echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log systemctl stop keepalived fi fi 5、給 check_ng.sh 權限,啟動keepalived服務 chmod 755 /usr/local/sbin/check_ng.sh systemctl start keepalived 6、停止nginx服務,查看nginx是否啟動,查看日志 ?/var/log/message 和 IP ?ip add 。 7、關閉主從機器的防火墻和 SELinuxsystemctl stop firewalld
setenforce 0
8、配置IP 為150的從服務器, 1)先清空keepalived.conf文件 > ?/etc/keepalived/keepalived.conf 2)添加以下內容: global_defs { notification_email { aming } notification_email_from root smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_script chk_nginx { script "/usr/local/sbin/check_ng.sh" interval 3 } vrrp_instance VI_1 { state BACKUP interface ens33 virtual_router_id 51 priority 90 advert_int 1 authentication { auth_type PASS auth_pass aminglinux>com } virtual_ipaddress { 192.168.134.100 } track_script { chk_nginx } } 9、編輯定義150的監控腳本 #!/bin/bash d=`date --date today +%Y%m%d_%H:%M:%S` n=`ps -C nginx --no-heading|wc -l if [ $n -eq "0" ]; then systemctl start nginx n2=`ps -C nginx --no-heading|wc -l` if [ $n2 -eq "0" ]; then echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log systemctl stop keepalived fi fi 10、 區分nginx a)web訪問主的IP b)web訪問從的IP c)web訪問vip 這就說明nginx服務在master 主服務器上,192.168.134.100在master上,和從服務器沒有關系。 11、測試高可用 a)在主服務上增加防火墻規則iptables -I OUTPUT -p vrrp -j DROP
此時發現封掉vrrp協議不能實現切換資源的目的。
b)恢復防火墻,停掉keepalived。查看從服務器的ip add 和日志。
iptables -F
systemctl stop keepalived
可以發現此時已經切換到從服務器了。 c)在開啟主服務器的keepalived,在查看ip add 和web. 可以發現 ip add 馬上就切到主機服務器上了,資源立刻就切換了。轉載于:https://www.cnblogs.com/wbjy123linux/p/8763096.html
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的用Keepalived搭建高可用集群的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人生苦短,我学python之python
- 下一篇: 结对作业——四则运算