主頁 >  其他 > OpenELB 在 CVTE 的最佳實踐

OpenELB 在 CVTE 的最佳實踐

2023-06-10 08:27:44 其他

作者:大飛哥,視源電子股份運維工程師, KubeSphere 社區用戶委員會廣州站站長,KubeSphere Ambassador,

公司介紹

廣州視源電子科技股份有限公司(以下簡稱視源股份)成立于 2005 年 12 月,旗下擁有多家業務子公司,截至 2022 年 12 月 31 日,公司總人數超 6000 人,約 60% 為技術人員,員工平均年齡約為 29 歲,

目前公司的主營業務為液晶顯示主控板卡和互動智能平板等顯控產品的設計、研發與銷售,產品已廣泛應用于家電領域、 教育資訊化領域、企業服務領域等,始終致力于通過產品創新、研發設計提升產品的用戶體驗,為客戶和用戶持續創造價值,公司自成立以來,依托在音視頻技術、信號處理、電源管理、人機互動、應用開發、系統集成等電子產品領域的軟硬體技識訓累,面向多應用場景進行技術創新和產品開發,通過產品和資源整合等能力在細分市場逐步取得領先地位,并建立了教育數字化工具及服務提供商希沃(seewo)、智慧協同平臺 MAXHUB 等多個業內知名品牌,

挑戰

隨著在 Kubernetes 上運行的應用程式數量增加,如何優雅地將服務匯出到集群成為一個需要解決的問題,Kubernetes 提供了 NodePort 和 Loadbalancer 來匯出服務,NodePort 受到主機埠數量的限制,過多的埠開放還會有安全風險,在流量治理方面更是讓人望而生畏;Loadbalancer 則用于宣告云供應商的服務,對于裸金屬服務器而言,Kubernetes 官方不提供支持,對于企業私有云中的 Kubernetes 集群,想要對外提供服務,就遇到了挺大的挑戰,在這種情況下,我們發現了 OpenELB, 它可以在 Loadbalancer 型別中匯出服務并穩定運行,

解決方案

作為 KubeSphere 團隊開源的專案,OpenELB(曾用名 Porter)是一款為裸金屬服務器提供 LoadBalancer 型別服務的產品,

總結起來,有如下幾個優點:

  • 首先,它是由一個團隊而不是個人運行的,而且社區貢獻者頗多,因此可以避免廠商依賴或者無人維護,
  • 其次,OpenELB 支持的協議比同類競爭對手更多,
  • 最后,OpenELB 有完備的檔案,對中文支持友好,企業服務可以獲得更多的技術服務支持,在使用程序中,您會發現更多的驚喜,

實踐程序

管理員可以通過 NodePort 匯出 Kubernetes 服務,在這種情況下,每臺集群主機都會匯出同樣的埠,這在大規模集群中的開銷是巨大的,不幸的是,Kubernetes 可以使用的主機埠是有限的(30000-32768),開源社區建議使用動態埠,這可能會帶來風險和管理難度,給流量治理帶來巨大的挑戰,Kubernetes 中的默認 LoadBalancer 型別的服務僅支持云廠商提供的服務,

OpenELB 是一種解決方案,用于為裸機提供負載均衡型別的服務,基于 BGP 和 ECMP 協議,可實作最佳性能和高可用性,OpenELB 提供了兩個功能模塊:

  1. 負載均衡控制器(Controller)

    該控制器負責將 BGP 路由同步到物理交換機,

  2. CRD 和 CRD 控制器

    CRD EIP 定義了在 Layer2 模式中使用的 EIP 地址池,同樣,CRD BgpConf 和 BgpPeer 定義了 Kubernetes 集群內部的 BGP,并用于 BGP 模式,

生產環境中,強烈建議使用 BGP 模式,如下圖所示,把物理路由器設備劃歸到 AS50001 中,把 OpenELB 所在的集群劃歸到 AS 50000 中,OpenELB 會建立服務路由規則,并將其同步到物理路由器上,BGP 路由器根據負載均衡策略轉發對應的流量到達相應的集群主機節點上,kube-proxy 再近一步轉發流量到 Service 層,BGP 模式需要物理路由器設備和集群主機網路的支持,其最大的優點就是穩定可靠,解決了路由轉發的單點故障問題,

雖然 BGP 模式是建議的模式,但是在實際應用中,Layer2 模式使用更為廣泛,因為它簡單易用,配置要求低,配置簡單,對于使用虛擬機作為 K8s 集群節點的用戶,受 VMware 網路的限制,只能選擇 Layer2 模式,讓我們來看下 Layer2 模式的網路架構,

我們使用 GitLab CI 和 Argo CD 建立自動化流水線,以幫助開發人員提高效率,并使用 Nginx Ingress 處理 7 層請求,Argo CD 使用 IP 10.10.1.2 匯出負載均衡型別的服務,而 Nginx Ingress 則使用 IP 10.10.1.3 匯出,因此,我們可以建立如下的 DNS 記錄:

# HOSTS
10.10.1.2  argocd.cvte.com
10.10.1.3  ingress.cvte.com

當用戶訪問像 argocd.cvte.com 這樣的域名時,請求將路由到路由器,由于 EIP 不能系結到任何網路卡硬體上,因此路由器需要廣播 ARP 請求,這個請求將被 OpenELB 回應一個集群節點的 IP,這樣,路由器就知道將網路資料包發送到哪里了,由 Ingress 控制的任何其他域都會路由到另一個 EIP,

通常情況下,OpenELB 僅會使用一個集群節點 IP 回應 ARP 請求,如果此節點關倍訓不可用,則 OpenELB 會切換到另一個節點,以確保業務的連續性,

通過對 Layer2 模式原理的講解,不難發現,Layer2 模式有單點故障風險,為了減少這種單點風險,KubeSphere 研發團隊貼心地開發了 VIP 模式,即虛擬 IP 模式,VIP 提供了單點故障的轉移,當 Layer2 模式中的主機節點故障,OpenELB 會自動切換流量到備份 IP,VIP 模式,只能算是減少單點故障風險,無法完全消滅風險,所以在生產環境中,普通 Layer2 模式或 VIP 模式,都不建議使用,根據我們的經驗,如萬般無奈,只能使用 Layer2 模式,那就獨立兩臺機器,只用來接收外部流量,并盡量保證這兩臺機器的高可用,

使用效果

OpenELB 以 TCP 協議匯出服務,并與 Ingress 配合使用,可以輕松管理大多數 Web 應用程式,與 NodePort 不同,OpenELB 只需要幾個 EIP 即可代理請求到服務,流量集中處理從而極大地降低了管理難度,

總結

OpenELB 提供了一種為裸金屬服務器匯出 LoadBalancer 型別服務的功能,幫助我們輕松地管理網路基礎設施,作為 KubeSphere 的一個子專案,OpenELB 非常適合在企業私有云環境中使用,具有較強的穩定性和可信度,

參考閱讀

  • 負載均衡器 OpenELB ARP 欺騙技術決議

  • 詳解 K8s 服務暴露機制與 OpenELB 負載均衡器插件(直播回放 + PPT)

本文由博客一文多發平臺 OpenWrite 發布!

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/554786.html

標籤:其他

上一篇:華為云 UCS GitOps:輕松交付多集群云原生應用

下一篇:返回列表

標籤雲
其他(160704) Python(38219) JavaScript(25489) Java(18216) C(15237) 區塊鏈(8270) C#(7972) AI(7469) 爪哇(7425) MySQL(7241) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5873) 数组(5741) R(5409) Linux(5347) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4589) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2435) ASP.NET(2404) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1984) 功能(1967) HtmlCss(1956) Web開發(1951) C++(1933) python-3.x(1918) 弹簧靴(1913) xml(1889) PostgreSQL(1880) .NETCore(1863) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • OpenELB 在 CVTE 的最佳實踐

    > 作者:大飛哥,視源電子股份運維工程師, KubeSphere 社區用戶委員會廣州站站長,KubeSphere Ambassador。 ## 公司介紹 廣州視源電子科技股份有限公司(以下簡稱視源股份)成立于 2005 年 12 月,旗下擁有多家業務子公司。截至 2022 年 12 月 31 日,公 ......

    uj5u.com 2023-06-10 08:27:44 more
  • 華為云 UCS GitOps:輕松交付多集群云原生應用

    摘要:使用華為云 UCS GitOps 配置管理來交付您的多云應用。 本文分享自華為云社區《華為云 UCS GitOps:輕松交付多集群云原生應用》,作者:華為云云原生團隊。 隨著業務的全球化發展和應用多元化部署的趨勢,越來越多的客戶選擇通過混合云、多云模式來進行業務部署。選擇多云進行部署可以提高部 ......

    uj5u.com 2023-06-10 08:27:31 more
  • 天翼云SD-WAN解決方案直播

    2023年6月16日14點,天翼云SD-WAN解決方案直播火熱來襲啦!參與直播即可領取優惠好禮,實惠多多! 點擊鏈接注冊參與:https://ctyun.d1meeting.cn/0616/ 直播時間: 2023年6月16日14 : 00-14 : 40 主講人: 天翼云科技有限公司云網產品事業部技 ......

    uj5u.com 2023-06-10 08:27:21 more
  • cocos2d-x 3.17 推箱子 0.1

    # 簡述 ## sokoban-cocos2dx 此版本為推箱子游戲的基礎版本, 后續添加如下功能 1. 人物影片 2. TiledMap 決議 3. 射線碰撞檢測 4. 下一步提示, C++演算法決議 5. 道具, 可以回退一步 ## 原始碼運行方式 ~~通過 `cocos` 命令新建一個專案, 將本 ......

    uj5u.com 2023-06-10 08:21:55 more
  • 讀改變未來的九大演算法筆記08_并非萬能的演算法

    ![](https://img2023.cnblogs.com/blog/3076680/202306/3076680-20230609163604504-1485199592.png) # 1. 有些問題根本不可能通過計算機解決,不管計算機有多強大或人類程式員有多聰明 # 2. 不可計算問題 ## ......

    uj5u.com 2023-06-10 08:01:32 more
  • [Week 20]每日一題(C++,圖論,數學,搜索)

    [TOC] ## T1 [Daimayuan] Collision(C++,多源最短路) #### 題目描述 $siyisss$ 的王國是由 $n$ 個村鎮和 $n?1$ 條雙向道路構成的,村鎮從 $1$ 到 $n$ 依次編號,每條雙向道路連接兩個不同的村鎮,使得從任意一個村鎮出發都可以到達任意一個 ......

    uj5u.com 2023-06-10 08:01:24 more
  • 什么是無服務器架構技術?

    本文分享自天翼云開發者社區《什么是無服務器架構技術?》,作者:SD萬 無服務器架構(Serverless Architecture)是jin年來逐漸興起的一種軟體架構方案,它采用了一種全新的方式來處理應用程式的部署、運行和擴展。與傳統的服務器架構相比,無服務器架構具有很多優勢,包括可擴展性、彈性、可 ......

    uj5u.com 2023-06-10 08:01:18 more
  • CCSP2019T2_紙牌計數 | 2019蘇州CCSP大學生計算機系統與程式設計

    ## 題目描述 偶然在CSDN看到有人寫了CCSP2019T2_紙牌計數的題解,突然想起來是一個不錯的計數、dp題。 以前的U盤找不到了,記得當時存了一步步偏分到AC代碼,可惜。又想起來18年打鐵了。。。 此人的題解的鏈接 [CCSP201902紙牌計數——解題報告](https://blog.cs ......

    uj5u.com 2023-06-10 08:01:14 more
  • 【技識訓累】演算法中的動態規劃【二】

    博客推行版本更新,成果積累制度,已經寫過的博客還會再次更新,不斷地琢磨,高質量高數量都是要追求的,工匠精神是學習必不可少的精神。因此,大家有何建議歡迎在評論區踴躍發言,你們的支持是我最大的動力,你們敢投,我就敢肝 ......

    uj5u.com 2023-06-10 08:01:09 more
  • 演算法基礎(一):串匹配問題(BF,KMP演算法)

    好家伙,學演算法, 這篇看完,如果沒有學會KMP演算法,麻煩給我點踩 希望你能拿起紙和筆,一邊閱讀一邊思考,看完這篇文章大概需要(20分鐘的時間) 我們學這個演算法是為了解決串匹配的問題 那什么是串匹配? 舉個例子: 我要在"彭于晏吳彥祖"這段字串中找到"吳彥祖"字串 這就是串匹配 這兩個演算法太抽象了 ......

    uj5u.com 2023-06-10 08:00:47 more