Chuyển đến nội dung chính

第 9 課:METALLB — 本地負載平衡器

安裝MetalLB為本地叢集中的服務提供LoadBalancer IP,配置L2模式和BGP模式、IPAddressPool,並將服務暴露到外部網路。

🔒 DevSecOps — 第 9 課 第 9 課:METALLB — 的負載平衡器 本地

使用 Kubernetes HA 在本地部署微服務

第 2 部分:使用 kubeadm 的 Kubernetes HA 叢集__HTMLTAG_62___

xdev.asia

🎯 課程目標__HTMLTAG_68___

完成本課程後,您將:

  • ✅ 了解本地的 LoadBalancer 問題(無雲 LB)
  • ✅ 使用 Helm 安裝 MetalLB
  • ✅ 使用 IPAddressPool 配置 L2 模式
  • ✅ 了解大型資料中心的 BGP 模式__HTMLTAG_79___
  • ✅ 公開 LoadBalancer 類型的服務

第 1 部分:本地負載平衡器問題

1.1。雲端與本地

___程式碼區塊_0___

第 2 部分:METALLB 安裝

2.1。先修條件

___程式碼區塊_1___

2.2。使用 Helm 安裝 MetalLB

___程式碼區塊_2___

第 3 部分:L2 模式配置

3.1。 IP 位址池

___程式碼區塊_3___

程式碼區塊_4

3.2。 L2 模式如何運作?

___程式碼區塊_5___

第 4 部分:測試負載平衡器服務

4.1。部署測試應用程式

___程式碼區塊_6___

4.2。測試來自外部的存取

___程式碼區塊_7___

4.3。指定具體IP

___程式碼區塊_8___

第 5 部分:BGP 模式(大型資料中心)

5.1。何時使用 BGP?

標準 L2 模式 BGP 模式
路由器請求 否 需要支援 BGP 的路由器__HTMLTAG_135___
故障轉移 ~10 秒__HTMLTAG_141___ ~3 秒
真正的負載平衡 ❌(1 個節點句柄) ✅ 跨節點 ECMP__HTMLTAG_151___
跨子網路 ❌ 相同的 L2 段__HTMLTAG_157___ ✅ 跨子網路工作__HTMLTAG_159___
複雜性 簡單__HTMLTAG_165___ 需要路由器設定
最適合 SMB,單機架 大型直流、多機架

5.2。 BGP 設定範例

___程式碼區塊_9___

第 6 部分:IP 共享與進階功能

6.1。共享IP(許多服務使用1個IP)

___程式碼區塊_10___

6.2。清理測試

___程式碼區塊_11___

💡 重點

    ___HTMLTAG_193__HTMLTAG_194___MetalLB 解析本地 LoadBalancer — 無需雲端供應商__HTMLTAG_196___ ___HTMLTAG_197__HTMLTAG_198___L2模式簡單,適合單機架/小型叢集 ___HTMLTAG_201__HTMLTAG_202___BGP 模式 適用於具有 ECMP 真正負載平衡的大型多機架資料中心 ___HTMLTAG_205__HTMLTAG_206___IPAddressPool 管理 IP 範圍,可以建立許多池(外部、內部) ___HTMLTAG_209__HTMLTAG_210___IP 共享 允許多個服務共享相同外部 IP ___HTMLTAG_213__HTMLTAG_214___strictARP:true kube-proxy 中是 L2 模式的要求

🎯 練習

練習 1:安裝 MetalLB

  • 使用 Helm 安裝 MetalLB
  • 使用適當的 IP 範圍實驗室建立 IPAddressPool
  • 部署服務類型LoadBalancer,驗證外部IP

練習 2:多個池__HTMLTAG_232___
  • 建立 2 個池:外部池與內部池
  • 部署2個服務,每個服務使用不同的池
  • 測試與具有相同 IP 連接埠的 2 個服務的 IP 共用

📚 下一篇文章

在第10課:etcd — 作業、備援與災難復原中,我們將深入探討etcd作業、備援策略和復原過程。