【LVS】3、LVS+Keepalived群集

為什么用它,為了做高可用

服務功能

1.故障自動切換

2.健康檢查

3.節點服務器高可用-HA

Keepalived的三個模塊:
core:Keepalived的核心,負責主進程的啟動、維護;調用全局配置文件進行加載和解析
vrrp:實現VRRP協議
check:負責健康檢查
????????tcp端口檢查:三次握手
????????http url檢查:返回碼

Keepalived實現原理

底層基于VRRP協議實現的高可用

? ? ? ? VRRP就是虛擬路由冗余協議,它的出現是為了解決靜態路由單點故障

? ? ? ? VRRP是通過競選一種協議機制來將路由交給某臺VRRP路由器

? ? ? ? VRRP用IP多播的方式()實現高可用之間的通信;工作時,主節點發包,備節點接包,當備節點收不到主節點的數據包時,就啟動接管主節點的資源,備節點可以有多個,通過優先級來進行競選;一般Keepalived系統運維時只有一對

? ? ? ? VRRP使用加密協議加密數據,但Keepalived目前還是推薦是用明文

腦裂現象

????????Master一直發送心跳消息給backup主機,如果中間的鏈路突然斷掉,backup主機將無法收到master主機發送過來的心跳消息(也就是vrrp報文),backup這時候會立即搶占master的工作,但其實這時候的master是正常工作的,此時就會出現腦裂的現象。

怎么預防腦裂現象

1.使用shell腳本對這兩個主機之間的連通性進行監測,如果發現有問題,就會立即關閉keepalived服務來防止腦裂的產生。

2.增加一條鏈路作為備用鏈路,即使主鏈路掛掉了,備用鏈路也會頂上來,master主機可以繼續給backup主機發送心跳消息。

3.監控軟件的方法,這邊主要是采用的zabbix來監控的,主要就是創建監控項,創建觸發器來測試關閉keepalived服務。
?

掌握LVS+keepalived高可用集群部署?

示意圖:(待修改)

主DR 服務器:ens33(192.168.220.121) ipvsadm 、keepalived(熱備) 虛擬IP:192.168.220.135? 網卡 ens33:0
備DR 服務器:ens33(192.168.220.122) ipvsadm 、keepalived
虛擬IP:192.168.220.135? 網卡 ens33:0
Web 服務器1:ens33 192.168.220.111
lo:0(VIP)192.168.220.135
Web 服務器2:ens33 192.168.220.112
lo:0(VIP)192.168.220.135
vip:192.168.220.135? ? ? ? ?
客戶端:192.168.220.10

1.配置負載調度器(主、備相同) ?(192.168.220.121、192.168.220.122)

systemctl stop firewalld.service
setenforce 0yum -y install ipvsadm keepalived
modprobe ip_vs
cat /proc/net/ip_vs
(1)配置keeplived(主、備DR 服務器上都要設置)
cd /etc/keepalived/
cp keepalived.conf keepalived.conf.bak
vim keepalived.confglobal_defs {						#定義全局參數
--10行--修改,郵件服務指向本地smtp_server 127.0.0.1
--12行--修改,指定服務器(路由器)的名稱,主備服務器名稱須不同,主為LVS_01,備為LVS_02router_id LVS_01
--14行--注釋掉,取消嚴格遵守VRRP協議功能,否則VIP無法被連接#vrrp_strict
}vrrp_instance VI_1 {				#定義VRRP熱備實例參數
--20行--修改,指定熱備狀態,主為MASTER,備為BACKUPstate MASTER
--21行--修改,指定承載vip地址的物理接口interface ens33
--22行--修改,指定虛擬路由器的ID號,每個熱備組保持一致	virtual_router_id 10#nopreempt		#默認為搶占模式;如果設置非搶占模式,兩個節點state必須為bakcup,并加上配置 nopreempt
--23行--修改,指定優先級,數值越大優先級越高,這里設置主為100,備為90priority 100advert_int 1					#通告間隔秒數(心跳頻率)authentication {				#定義認證信息,每個熱備組保持一致auth_type PASS				#認證類型
--27行--修改,指定驗證密碼,主備服務器保持一致auth_pass abc123}virtual_ipaddress {				#指定群集vip地址192.168.220.135}
}
--36行--修改,指定虛擬服務器地址(VIP)、端口,定義虛擬服務器和Web服務器池參數
virtual_server 192.168.220.135 80 {delay_loop 6					#健康檢查的間隔時間(秒)lb_algo rr						#指定調度算法,輪詢(rr)
--39行--修改,指定群集工作模式,直接路由(DR)lb_kind DRpersistence_timeout 50			#連接保持時間(秒)protocol TCP					#應用服務采用的是 TCP協議
--43行--修改,指定第一個Web節點的地址、端口real_server 192.168.220.111 80 {weight 1					#節點的權重
--45行--刪除,添加以下健康檢查方式		TCP_CHECK {connect_port 80			#添加檢查的目標端口connect_timeout 3		#添加連接超時(秒)nb_get_retry 3			#添加重試次數delay_before_retry 3	#添加重試間隔}}real_server 192.168.220.112 80 {		#添加第二個 Web節點的地址、端口weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}
##刪除后面多余的配置##
}
192.168.220.121和122都需要配置vip(虛擬IP)
vim /etc/sysconfig/network-scripts/ifcfg-ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.220.135
NETMASK=255.255.255.255重啟網卡
systemctl restart network
ifup  ens33:0 #主備服務器一起啟動
systemctl restart keepalived
#查看虛擬網卡vip
ifconfig ens33:0
ip addr
(2)啟動 ipvsadm 服務
????????--192.168.220.121---
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadmipvsadm -C   ##清空規則
ipvsadm -A -t 192.168.220.135:80 -s rr
ipvsadm -a -t 192.168.220.135:80 -r 192.168.220.111:80 -g
ipvsadm -a -t 192.168.220.135:80 -r 192.168.220.112:80 -gipvsadm -ln
#如沒有VIP 的分發策略,則重啟 keepalived 服務,systemctl restart keepalived
????????--192.168.220.122---
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl restart ipvsadmipvsadm -ln
(3)調整 proc 響應參數,關閉Linux 內核的重定向參數響應
vim /etc/sysctl.conf
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0sysctl -p

2.配置節點服務器

systemctl stop firewalld
setenforce 0yum -y install httpd
systemctl start httpd
vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.220.135
NETMASK=255.255.255.255systemctl restart network
ifup lo:0
ifconfig lo:0
route add -host 192.168.220.135 dev lo:0vim /etc/sysctl.confnet.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 = 2sysctl -p
--192.168.220.111---
echo 'this is L+K web1!' > /var/www/html/index.html
--192.168.220.112---
echo 'this is L+K web2!' > /var/www/html/index.html

3.測試驗證

在客戶端訪問 http://192.168.220.135
#需要等一會再刷新,才能輪詢

再在主服務器關閉 keepalived 服務后再測試

systemctl stop keepalived

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/43700.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/43700.shtml
英文地址,請注明出處:http://en.pswp.cn/news/43700.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

matlab使用教程(16)—圖論中圖的定義與修改

1.修改現有圖的節點和邊 此示例演示如何使用 addedge 、 rmedge 、 addnode 、 rmnode 、 findedge 、 findnode 及 subgraph 函數訪問和修改 graph 或 digraph 對象中的節點和/或邊。 1.1 添加節點 創建一個包含四個節點和四條邊的圖。s 和 t 中的對應元素用于指定每條…

使用 MBean 和 日志查看 Tomcat 線程池核心屬性數據

文章目錄 CustomTomcatThreadPoolMBeanCustomTomcatThreadPool CustomTomcatThreadPoolMBean com.qww.config;public interface CustomTomcatThreadPoolMBean {String getStatus(); }CustomTomcatThreadPool package com.qww.config;import com.alibaba.fastjson.JSON; impor…

三本書與三場發布會,和鯨社區重新定義編程類書籍從閱讀到實踐新體驗

當 AI 開發者社區配備 AI 基礎設施開發平臺工具時,它還能做什么? 答案是:過去半年,和鯨社區憑借在氣象、醫學、社科等垂直領域的長期積累以及多方伙伴的支持,聯合舉辦了三場新書發布會——從 Python 到 R 語言 、從氣…

Midjourney Prompt 提示詞速查表 v5.2

Midjourney 最新的版本更新正不斷推出令人興奮的新功能。這雖然不斷擴展了我們的AI繪圖工具箱,但有時也會讓我們難以掌握所有實際可以使用的功能和參數。 針對此問題, 小編整理了 "Midjourney Prompt 提示詞速查表",這是一個非常方便的 Midjo…

Java“牽手“拼多多商品詳情頁面數據獲取方法,拼多多API實現批量商品數據抓取示例

拼多多商城是一個網上購物平臺,售賣各類商品,包括服裝、鞋類、家居用品、美妝產品、電子產品等。要獲取拼多多商品詳情數據,您可以通過開放平臺的接口或者直接訪問拼多多商城的網頁來獲取商品詳情信息。以下是兩種常用方法的介紹:…

Linux:shell腳本數組和腳本免交互

目錄 一、shell數組的定義 二、定義數組的方式 (1)數組名(value1 value2 value3 value4 ...) (2)獲取數組的長度 (3)獲取數組下標對應的值 (4)數組的遍歷 (5&#x…

qsort函數詳解

大家好,我是蘇貝,本篇博客帶大家了解qsort函數,如果你覺得我寫的不錯的話,可以給我一個贊👍嗎,感謝?? 文章目錄 一. qsort函數參數詳解1.數組首元素地址base2.數組的元素個數num和元素所占內存空間大小w…

ThreeJS——在3D地球上標記中國地圖板塊

Threejs3D地球標記中國地圖位置 先看效果 地球預覽視頻效果 用到的庫 TweenJS (動畫庫)用來做相機轉場的動畫Jquery(這里只用到一個 each 循環方法,可以使用 js 去寫)ThreeJS (3D 地球制作)100000.json(全國城市經緯度)d3.v6.js用來設置平面轉3D效果(本來考慮做成…

深入解析IDS/IPS與SSL/TLS和網絡安全

目錄 防火墻 IDS IPS DMZ VPN VPS SSL/TLS 動態IP 靜態IP 防火墻 防火墻是一種網絡安全設備,用于監控和控制網絡流量,保護網絡免受未經授權的訪問、惡意攻擊和威脅。防火墻可以基于規則進行數據包過濾,允許或阻止特定類型的流量通過…

Lead-Lag控制器形式

對于Lead-Lag(超前—滯后),有的地方叫做控制器 Controller,有的地方叫補償器 Compensator,有的地方叫濾波器 Filter,都是一個東西。 Lead-Lag也有幾種不同的形式,一種是 G c ( s ) 1 a T s 1…

QT設置widget背景圖片

首先說方法,在給widget或者frame或者其他任何類型的控件添加背景圖時,在樣式表中加入如下代碼,指定某個控件,設置其背景。 類名 # 控件名 { 填充方式:圖片路徑 } 例如: QWidget#Widget {border-image: url…

無涯教程-TensorFlow - 優化器

Optimizers是擴展類,其中包括用于訓練特定模型的附加信息,Optimizers類使用給定的參數初始化,用于提高速度和性能,以訓練特定模型。 TensorFlow的基本Optimizers是- tf.train.Optimizer 此類在tensorflow/python/training/opti…

C語言:深度學習知識儲備

目錄 數據類型 每種類型的大小是多少呢? 變量 變量的命名: 變量的分類: 變量的作用域和生命周期 作用域: 生命周期: 常量 字符串轉義字符注釋 字符串: 轉義字符 操作符: 算術操作符…

圖神經網絡 day2 圖的分類

圖神經網絡基礎算法 1 GCN2 GraphSAGE2.1 采樣:采樣固定長度的鄰居2.2 聚合2.3 GraphSAGE_minibatch2.4 GraphSAGE_embedding 3 GAT4. 圖網絡的分類4.1 遞歸圖神經網絡 RGNN4.2 圖卷積神經網絡GCN4.3 圖注意力網絡 GAT4.4 圖自動編碼 GAE4.5 圖時空網絡 GSTN4.6 圖生…

typeScript 接口和類

工具: PlayGround 接口 接口用來定義對象的結構和類型,描述對象應該具有哪些屬性和方法。 它僅用于聲明,而不是實現; 這對于編寫可重用的代碼非常有用。它可用于: 關鍵字是interface, 注意:它…

OSPF在廣播類型的網絡拓撲中DR和BDR的選舉

指定路由器(DR): 一個網段上的其他路由器都和指定路由器(DR)構成鄰接關系,而不是它們互相之間構成鄰接關系。 備份指定路由器(BDR): 當DR出現問題,由BDR接…

redis事務對比Lua腳本區別是什么

redis官方對于lua腳本的解釋:Redis使用同一個Lua解釋器來執行所有命令,同時,Redis保證以一種原子性的方式來執行腳本:當lua腳本在執行的時候,不會有其他腳本和命令同時執行,這種語義類似于 MULTI/EXEC。從別…

中間件: Kafka安裝部署

單機部署 下載二進制包 cd /opt/soft/archive wget http://archive.apache.org/dist/kafka/3.2.0/kafka_2.12-3.2.0.tgz tar -zxf kafka_2.12-3.2.0.tgz -C ../ cd ../kafka_2.12-3.2.0修改配置 vim config/server.propertiesadvertised.listenersPLAINTEXT://39.105.11.50:…

C++系列-函數重載

C系列-函數重載 函數重載函數重載的條件函數重載注意事項引用作為重載函數重載遇到默認參數 函數重載 函數名可以相同, 提高復用性 函數重載的條件 同一個作用域下函數名相同函數參數不同 – 參數個數不同 – 參數順序不同 – 參數類型不同不可以使用返回值作為重…

UI和API自動化測試的失敗原因

一、UI自動化失敗原因: 界面發生了變化,但是腳本沒有更新腳本中的等待時間太短了,導致元素還沒出來就被判定為失敗了網絡因素,網絡如果太慢的話,界面元素的顯示就會滯后執行的時候突然彈出一個窗口影響了元素的定位Ag…