云計算學習100天-第31天

Keepalived

概念

  • keepalived 是Linux下一個輕量級的高可用解決方案
  • 主要是通過虛擬路由冗余協議(VRRP)來實現高可用功能
  • Virtual Router Redundancy Protocol
  • 起初就是為了補充LVS功能而設計的,用于監控LVS集群內后端真實服務器狀態
  • 后來加入了VRRP的功能,它出現的目的是為了解決靜態路由出現的單點故障問題

功能

  • LVS規則管理
  • LVS集群真實服務器狀態監測
  • 管理VIP
主機名IP地址角色
pubservereth0:192.168.88.240ansible主機
clienteth0:192.168.88.10客戶端
lvs1eth0:192.168.88.5lvs1調度器
lvs2eth0:192.168.88.6lvs2調度器
web1eth0:192.168.88.100web服務器
web2eth0:192.168.88.200web服務器

使用Keepalived實現LVS高可用,配置測試高可用負載均衡集群

lvs1和lvs2節點安裝LVS和Keepalived軟件,在ansible主機上使用劇本安裝


vim 11_inst_lvs_kp.yml
---
- name: install soft
hosts: lbs
tasks:
- name: install pkgs??? #安裝軟件
yum:
name: ipvsadm,keepalived
state: present

ansible-playbook 11_inst_lvs_kp.yml

配置lvs1節點Keepalived軟件

vim /etc/keepalived/keepalived.conf
global_defs {
...
router_id lvs1?????????? #集群節點唯一標識
vrrp_iptables??????????? #放行防火墻規則
...
vrrp_strict????????????? #嚴格遵守VRRP規則
...
}

vrrp_instance VI_1 {
state MASTER??????????? #狀態
interface eth0????????? #網卡
virtual_router_id 51??? #虛擬路由唯一標識符
priority 100??????????? #優先級
advert_int 1??????????? #心跳包間隔時間
authentication {??????? #認證方式
auth_type PASS????? #密碼認證
auth_pass 1111????? #集群密碼
}
virtual_ipaddress {???? #定義VIP
192.168.88.15/24 dev eth0 label eth0:0? #VIP地址及綁定網卡和虛接口標簽
}
}

virtual_server 192.168.88.15 80 {?? #定義LVS虛擬服務器
delay_loop 6??????????????????? #健康檢查延時6s開始
lb_algo wrr???????????????????? #調度算法
lb_kind DR????????????????????? #LVS工作模式
persistence_timeout 50????????? #50s內相同客戶端發起請求由同一服務器處理
protocol TCP??????????????????? #虛擬服務器協議
real_server 192.168.88.100 80 { #定義真實服務器
weight 1??????????????????? #權重
TCP_CHECK {???????????????? #健康檢查方式
connect_timeout 3?????? #連接超時時間為3s
nb_get_retry 3????????? #連續3次訪問失敗則認為真實服務器故障
delay_before_retry 3??? #健康檢查包時間間隔
}
}

??? real_server 192.168.88.200 80 {
weight 2
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}

# 啟動服務測試
ipvsadm -Ln????????????????????????? #啟動服務前無LVS規則
systemctl enable --now keepalived??? #加入開機自啟并立即啟動
ipvsadm -Ln????????????????????????? #啟動服務后有LVS規則
ip a s | grep 192.168??????????????? #VIP已綁定

client客戶端同一服務器處理請求

for i in {1..6}
> do
>? curl http://192.168.88.15
> done

Welcome to web2
Welcome to web2
Welcome to web2
Welcome to web2
Welcome to web2
Welcome to web2

補充:lvs1節點注釋持久連接時長

vim? /etc/keepalived/keepalived.conf??? ?
...
#persistence_timeout 50
...
systemctl restart keepalived

#client客戶端同一服務器處理請求
for i in {1..6};do curl http://192.168.88.15; done
Welcome to web2
Welcome to web1
Welcome to web2
Welcome to web2
Welcome to web1
Welcome to web2


配置lvs2節點Keepalived軟件

#將lvs1節點的配置文件復制給lvs2節點 這里用rsync -av命令更安全
scp /etc/keepalived/keepalived.conf root@192.168.88.6:/etc/keepalived/
#進入到lvs2節點編輯配置文件
vim /etc/keepalived/keepalived.conf
#修改如下三行
router_id lvs2? #集群節點唯一標識符
state BACKUP??? #狀態
priority 50???? #優先級

ipvsadm -Ln
systemctl start keepalived
ipvsadm -Ln

驗證真實服務器健康檢查

#web1節點停止nginx服務,模擬web1故障
systemctl stop nginx? ?
#lvs1節點和lvs2節點中查看到LVS規則中web1被擦除
ipvsadm -Ln???????????? ?
TCP? 192.168.88.15:80 wrr
-> 192.168.88.200:80??????????? Route?? 2????? 0????????? 0? ?
#web1節點啟動nginx服務???? ?
systemctl start nginx??? #模擬web1修復
#lvs1節點和lvs2節點中的LVS規則中web1被添加回來
ipvsadm -Ln???????????? ?
TCP? 192.168.88.15:80 wrr
-> 192.168.88.100:80??????????? Route?? 1????? 0????????? 0??????? ?
-> 192.168.88.200:80??????????? Route?? 2????? 0????????? 0 ?

驗證高可用負載均衡

#lvs1節點
ip a s | grep 88.15????????? #VIP綁定于lvs1
inet 192.168.88.15/24 scope global secondary eth0:0
systemctl stop keepalived??? #模擬lvs1節點故障
ip a s | grep 88.15????????? #VIP釋放
ipvsadm -Ln????????????????? #LVS規則被清空

#lvs2節點
[root@lvs2 ~]# ip a s | grep 88.15?? #VIP綁定于lvs2
inet 192.168.88.15/24 scope global secondary eth0:0
ipvsadm -Ln
TCP? 192.168.88.15:80 wrr
-> 192.168.88.100:80??????????? Route?? 1????? 0????????? 0??????? ?
-> 192.168.88.200:80??????????? Route?? 2????? 0????????? 0??????? ?

client客戶端查看,不受影響
for i in {1..6}
do
curl http://192.168.88.15
done???????????????????? ?

Welcome to web1
Welcome to web2
Welcome to web2
Welcome to web1
Welcome to web2
Welcome to web2

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

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

相關文章

2025年視覺、先進成像和計算機技術論壇(VAICT 2025)

會議簡介 作為人工智能大數據創新發展論壇的重要分論壇,2025年視覺、先進成像和計算機技術論壇聚焦人工智能感知世界的核心前沿,將于2025年9月18-20日在中國廣州廣東科學館舉行。 視覺與成像技術是智能系統理解環境的關鍵,計算機技術則…

MySQL 與 ClickHouse 深度對比:架構、性能與場景選擇指南

🌟 引言:數據時代的引擎之爭 在當今數據驅動的企業環境中,選擇合適的數據庫引擎成為架構設計的關鍵決策。想象這樣一個場景:特斯拉的實時車況分析系統需要在毫秒級延遲下處理數百萬輛汽車的傳感器數據,而某電商平臺的訂…

閉包與內存泄漏:深度解析與應對策略

在 JavaScript 編程中,閉包是一個強大且常用的特性,但如果使用不當,可能會引發內存泄漏問題,影響程序性能甚至導致頁面卡頓。本文將深入剖析閉包導致內存泄漏的原理,結合實例講解,并給出切實可行的避免方法…

open webui源碼分析12-Pipeline

Pipeline是 Open WebUI 的一項創新,它 為任何支持 OpenAI API 規范的 UI 客戶端帶來了模塊化、可定制的工作流 —— 甚至更多功能!只需幾行代碼,你就能輕松擴展功能、集成自己的專有邏輯并創建動態工作流。 當你處理計算密集型任務&#xff0…

深入解析 Chromium Mojo IPC:跨進程通信原理與源碼實戰

在現代瀏覽器架構中,多進程設計已經成為標配。Chromium 瀏覽器作為典型的多進程瀏覽器,其瀏覽器進程(Browser Process)、渲染進程(Renderer Process)、GPU 進程、Utility 進程等之間的通信,依賴…

【自動化測試】測試分類概述-初步接觸自動化測試

🔥個人主頁: 中草藥 🔥專欄:【Java】登神長階 史詩般的Java成神之路 測試分類 了解各種各樣的測試方法分類,不是為了墨守成規按照既定方法區測試,而是已了解思維為核心,并了解一些專業名詞 根…

【Python辦公】快速比較Excel文件中任意兩列數據的一致性

目錄 專欄導讀 項目背景 技術選型 核心技術棧 選型理由 功能特性 ?? 核心功能 ?? 輔助功能 架構設計 整體架構 設計模式 核心代碼解析 1. 類初始化和UI設置 2. 文件選擇和數據加載 3. 數據比較核心算法 4. 結果導出功能 界面設計詳解 布局結構 UI組件選擇 性能優化 1. 內存…

nginx的誕生背景、核心優勢、與 Apache 的對比

下面用“3 個 1 分鐘”幫你快速建立 Nginx 的整體印象: 1 分鐘了解它為何誕生,1 分鐘看懂它的 5 大核心優勢,再花 1 分鐘搞清和 Apache 的關鍵差異。誕生背景(2002-2004) ? 作者:俄羅斯系統工程師 Igor Sy…

算法題打卡力扣第169題:多數元素(easy)

文章目錄題目描述解法一:暴力解解法二 排序法解法三:Boyer-Moore 投票算法 (最優解)題目描述 解法一:暴力解 定義一個數組C用于存放nums數組中每個數出現的次數,然后再遍歷C,判斷C【i】是否大于? n/2 ?,…

A6.0:PCB的設計流程

第一步:導入網表第二步:結構導入和板框定義1.導入結構文件:加載DXF格式的機械結構圖(含板框、定位孔、限高區),確保元件布局符合物理約束。2.固定器件預放置:將接插件、按鍵、散熱器等結構敏感元件鎖定到指定位置,避免后期調整沖突…

深度學習在金融訂單簿分析與短期市場預測中的應用

金融訂單簿記錄了市場上買賣雙方的委托訂單信息,包括價格、數量、訂單類型等關鍵要素。其數據具有以下特點: 高頻性:訂單在極短時間內不斷產生與變化,數據更新速度極快,每秒可能產生大量新訂單。序列性:訂單…

C++基礎算法——貪心算法

思想&#xff1a;總是做出在當前看來是最好的選擇 例題一、排隊打水問題 n個人&#xff0c;r個水龍頭&#xff0c;花費時間最少的安排&#xff1f;&#xff08;包含等待時間&#xff09; #include<iostream> #include <bits/stdc.h> using namespace std; int ma…

事務和鎖(進階)

事務和鎖&#xff08;進階&#xff09;一.回顧事務1.什么是事務2 為什么要使用事務3 怎么使用事務二.InnoDB和ACID模型三. 如何實現原子性四.如何實現持久性五.隔離性實現原理1.事務的隔離性2.事務的隔離級別3.鎖1&#xff09;鎖信息2&#xff09; 共享鎖和獨占鎖-Shared and E…

【Mentor Xpedition】預習一下

這個軟件不同于一般的PCB設計軟件&#xff0c;采用獨特的中心庫形式&#xff0c;相比cadence的SCH和PCB更緊湊&#xff0c;或者說本就是一家人&#xff0c;不像orcad和allegro強行捆在一起。 基本symbol給原理用&#xff0c;cell給PCB用。

通過代碼認識 CNN:用 PyTorch 實現卷積神經網絡識別手寫數字

目錄 一、從代碼看 CNN 的核心組件 二、準備工作&#xff1a;庫導入與數據加載 三、核心&#xff1a;用代碼實現 CNN 并理解各層作用 1.網絡層結構 2.重點理解&#xff1a;卷積層參數與輸出尺寸計算 四、訓練 CNN 五、結果分析 卷積神經網絡&#xff08;CNN&#xff09;…

基于SpringBoot和Thymeleaf開發的英語學習網站

角色&#xff1a; 管理員、用戶 技術&#xff1a; SpringBoot、Thymeleaf、MySQL、MyBatis、jQuery、Bootstrap 核心功能&#xff1a; 這是一個基于SpringBoot的英語學習平臺&#xff0c;旨在為用戶提供英語學習資料&#xff08;如書籍、聽力、單詞&#xff09;的管理和學習功能…

把 AI 塞進「智能跳繩」——基于 MEMS 傳感器的零樣本卡路里估算器

標簽&#xff1a;MEMS、卡路里估算、零樣本、智能跳繩、TinyML、RISC-V、低功耗、邊緣 AI ---- 1. 背景&#xff1a;為什么跳繩要「算卡路里」&#xff1f; 全球 1.5 億人把跳繩當日常運動&#xff0c;卻苦于&#xff1a; ? 機械計數器誤差大&#xff1b; ? 手機 App 需聯網…

礦用隨鉆測量現場應用中,最新的MEMS陀螺定向短節的優勢是什么?

在當代礦業開發向深部復雜地層進軍的過程中&#xff0c;隨鉆測量技術是控制鉆井定向打孔質量和提升長距離鉆探中靶精度的核心手段&#xff0c;煤礦井下定向鉆孔、瓦斯抽放孔、探放水孔等關鍵工程面臨著一系列特殊挑戰&#xff1a;強磁干擾、劇烈振動、空間受限等惡劣條件。最新…

Spring Boot 使用 RestTemplate 調用 HTTPS 接口時報錯:PKIX path building failed 解決方案

在使用 Spring Boot RestTemplate 調用 HTTPS 接口時&#xff0c;很多同學會遇到類似下面的報錯&#xff1a;javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certif…

【C語言入門級教學】sizeof和strlen的對?

1.sizeof和strlen的對? 1.1 sizeof sizeof 計算變量所占內存空間??的&#xff0c;單位是字節&#xff0c;如果操作數是類型的話&#xff0c;計算的是使?類型創建的變量所占內存空間的??。 sizeof 只關注占?內存空間的??&#xff0c;不在乎內存中存放什么數據。 ?如&a…