Kubernetes:Flomesh 服務網格與多集群通信

Kubernetes 成功普及了容器集群的概念。許多用戶已經在多個集群中部署應用,組織需要運行多個 Kubernetes 集群可能來自以下原因(并非詳盡列表):

  • ??位置

    • ??延遲(盡可能在靠近客戶的地方運行應用程序)

    • ??管轄權(例如,要求將用戶數據保存在國內)

    • ??數據引力(例如,數據存在于一個供應商)。

  • ??隔離性

    • ??環境(例如,開發、測試、預發布、生產等)

    • ??性能隔離(團隊之間希望互不影響)

    • ??安全隔離(敏感數據或不被信任的代碼)

    • ??組織隔離(團隊有不同的管理領域)。

    • ??成本隔離(團隊希望得到不同的賬單)

  • ??可靠性

    • ??爆炸半徑(一個集群中的基礎設施或應用問題不會使整個系統崩潰)

    • ??基礎設施的多樣性(底層區域、地區或供應商的故障不會導致整個系統癱瘓)。

    • ??規模(應用程序太大,無法在單個集群中安裝)。

    • ??升級范圍(為你的應用程序的某些部分升級基礎設施,但不是全部;避免需要在原地進行集群升級)。

目前還沒有標準的方法來連接甚至考慮超出單一集群邊界的 Kubernetes Service,Kubernetes Multicluster SIG 已經提出了提案?KEP-1645[1],以便跨多個集群擴展 Kubernetes Service 概念。

Flomesh[2]?一直在努力解決多集群通信的挑戰,將南北向流量管理能力整合到兼容 SMI 的服務網格?osm-edge[3]?中,并回饋社區。

上一篇?Kubernetes 跨集群流量調度實戰,我們對?FSM[4]?進行了簡單的介紹并演示其使用方法。我們將探索 FSM 多集群支持的動機、目標、架構、組件,以及它如何與成熟的、輕量級的、兼容 SMI 并適用于云和邊緣的服務網格?osm-edge[5]?集成。

Flomesh 服務網格

FSM[6]?是來自?Flomesh[7]?的開源產品,用于 Kubernetes 南北向流量、網關 API 控制器和多集群管理。FSM 以可編程代理?Pipy[8]?為核心,提供 Ingress 控制器、Gateway API?控制器、負載均衡器、跨集群服務注冊發現等。

動機

在為社區、商業客戶和企業提供咨詢和支持期間,我們看到了大量需求和期望(有些在文章開頭提到的),關于他們為什么要將部署拆分到多個集群中,同時保持在這些集群中運行的工作負載的相互依賴性。目前,集群是一個明顯邊界,服務對于遠端 K8s 消費者來說是不透明的,否則他們可能會使用元數據(例如端點拓撲)來更好地引導流量。用戶可能希望使用跨集群分布的服務來支持故障轉移或在集群遷移期間提供臨時的支持,然而,這都需要當今非常重的定制解決方案。

Flomesh 團隊旨在通過為這些問題提供解決方案來幫助社區。

目標

  • ??定義一個最小的 API 來支持跨集群的服務發現和消費。

    • ??使用另一個集群中的服務。

    • ??將部署在多個集群中的服務作為單個服務使用。

  • ??當一個服務被另一個集群消費時,它的行為應該是可預測的,并且與它在集群中的消費方式一致。

  • ??允許在多集群環境中進行灰度發布。

  • ??提供一個獨立的實現,可以在不與任何產品和/或解決方案耦合的情況下使用。

  • ??與?osm-edge[9]?服務網格的透明集成,適用于希望通過服務網格功能獲得多集群支持的用戶。

  • ??完全開源,歡迎社區參與貢獻。

架構

  • ??控制平面

843c3e205867d14fa3ec3568d881e284.png
fsm-architecture-cp
  • ??osm-edge 集成 (納管集群)

5b29d2436aee8d53e4f3444bd7c81946.png
fsm-architecture-managed-cluster

FSM 為集群連接器提供了一套 Kubernetes 自定義資源(CRD),并使用?KEP-1645[10]?用于導出和導入服務的?ServiceExport?和?ServiceImport?API。

FSM 多集群支持已經處于 alpha 階段,歡迎從?FSM Github[11]?下載嘗試。

對 FSM 多集群方案感興趣的小伙伴,也可以關注我們在 12 月 17 日中國 DevOps 社區峰會武漢站上關于《云時代的多集群流量調度》的分享,屆時會多對方案進行深度的介紹。

f8ad39927a37236cc5c8d8a047d8e10d.png

總結

Kubernetes 不再局限于單一邊界,擁有多個 Kubernetes 集群的場景變得非常普遍,且沒有一種典型或標準的方式來連接多集群并提供透明的方式來跨邊界訪問服務。Kubernetes Multicluster SIG 正在研究提案,以提供一組可以由供應商實現的通用 API,并為 k8s 用戶提供一致的方式來訪問內部或外集群的服務。

在后續的文章中,我們會進一步介紹 FSM 更多場景的使用,以及 FSM 能力的黑魔法。

引用鏈接

[1]?KEP-1645:?https://github.com/kubernetes/enhancements/tree/master/keps/sig-multicluster/1645-multi-cluster-services-api
[2]?Flomesh:?https://flomesh.io
[3]?osm-edge:?https://flomesh.io/osm-edge
[4]?FSM:?https://github.com/flomesh-io/fsm
[5]?osm-edge:?https://flomesh.io/osm-edge
[6]?FSM:?https://github.com/flomesh-io/fsm
[7]?Flomesh:?https://flomesh.io
[8]?Pipy:?https://flomesh.io
[9]?osm-edge:?https://flomesh.io/osm-edge
[10]?KEP-1645:?https://github.com/kubernetes/enhancements/tree/master/keps/sig-multicluster/1645-multi-cluster-services-api
[11]?FSM Github:?https://github.com/flomesh-io/fsm

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

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

相關文章

Java四種線程池的使用

FixedThreadPool 由Executors的newFixedThreadPool方法創建。它是一種線程數量固定的線程池,當線程處于空閑狀態時,他們并不會被回收,除非線程池被關閉。當所有的線程都處于活動狀態時,新的任務都會處于等待狀態,直到有…

袁永福軟件行業從業經歷

簡化版》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》 袁永福簡歷 袁永福,男,1980年生于江西省九江市都昌縣,2001年南京東南大學動力工程系本科畢業。畢業后一直從事計算機軟件開發工作&…

小程序之地圖導航

同學們平常使用地圖的時候應該都有注意到,當我們在一個應用中選擇一個地址,打開一個地圖,往往會有兩種顯示方式,一個是顯示當前自己的位置;一個是顯示對方,也就是目的地的位置;如下圖&#xff1…

PS2019攝影后期處理(一)

高高手之路筆記 一、學習方法 內外兼修:技術會淘汰、更新,自己內在也要提高。 二、照片格式、色彩空間 JPEG TIFF RAW sRGB:互聯網相關圖片,電子設備 三、照片風格 自己定義照片格式,直接后期效果 相機自帶工具&a…

mdnsresponder_什么是mDNSResponder.exe / Bonjour,如何卸載或刪除它?

mdnsresponderYou are no doubt reading this article because you’ve noticed the mDNSResponder.exe process running in Task Manager, you don’t remember installing it, and it doesn’t show up in the Add/Remove programs in Control Panel. So what is it, and how…

Windows 10下,如何使用PowerShell批量重啟局域網電腦

PowerShell 在Windows 10中越來越受到微軟重視,甚至被微軟安排在開始按鈕超級菜單中替換了一直以來默認的命令提示符(當然還可以換回去),這和該工具越來越強大密不可分。這次就介紹一個“群重啟”命令,可讓局域網內的電腦集體重啟。1、單機重…

.NET MAUI學習指南

由于.NET MAUI這項技術出來不久相關的學習資源暫時除了官網以外沒有太好的學習資源,這篇文章主要向大家分享幾種學習.NET MAUI的學習途徑,如果有好的學習資源歡迎大家私信給我然后更新到后續的文章里。(以下推薦學習途徑均為免費且無廣告的資…

循序漸進DB2(第2版)——DBA系統管理、運維與應用案例

《循序漸進DB2(第2版)——DBA系統管理、運維與應用案例》基本信息作者: 牛新莊出版社:清華大學出版社ISBN:9787302323013上架時間:2013-7-3出版日期:2013 年7月開本:16開頁碼:612版次&#xff1…

Oracle Unicode轉中文(解碼)

Oracle Unicode轉中文(解碼) CreateTime--2018年3月29日15:23:30 Author:Marydon 情景描述: 將數據庫中的某個字段誤存儲的是Unicode編碼,需要將其改成中文。 測試: --將Unicode轉中文 select unistr(REPLACE(\u6d4b\u…

PS2019攝影后期處理(二)

一、曲線 二、曲線與通道 三、HSL局部調整 色相、飽和度、亮度 a.色相:一個顏色,帽子是紅色 b.飽和度:樹木蔥郁一點 c.飽和度:衣服連桿 便黑白: 1.調低所有飽和度 2.將某個顏色飽和度提高,再轉灰度。…

管理員獲得所有權_在Windows 7中獲得注冊表項的所有權

管理員獲得所有權We have previously written about how to take ownership of files and folders in Windows 7, but there may be times when you need to take ownership of or assign full permission for certain registry keys. This article shows you how to do this. …

Dojo QuickStart 快速入門教程 (2) 基本框架

下載庫 首先,下載 Dojo 庫:http://www.dojotoolkit.org/downloads 放了方便測試,我將文件將解壓到 Web Server 的 "js/dojotoolkit" 文件夾中,如果你愿意,也可以綴上版本號。最后的目錄結構應該像下圖這樣&a…

攤牌了,.NET開發者,準備賦能未來

hi,這里是桑小榆。一名.net開發,從19年畢業至今一直從事相關技術已近4年。發展至今,很有必要分享分享我的經歷以及對于.net開發的看法和見解。篇幅有些長,無論你是學生,職業人,.NET開發者還是其他語言開發者…

網絡爬蟲練習

1.利用requests.get(url)獲取網頁頁面的html文件 import requests newsurlhttp://news.gzcc.cn/html/xiaoyuanxinwen/ res requests.get(newsurl) #返回response對象 res.encodingutf-8 print(res.text) 2.利用BeautifulSoup的HTML解析器,生成結構樹 import reques…

BZOJ 3434 時空穿梭

題目鏈接:http://www.lydsy.com/JudgeOnline/problem.php?id3434 題意: 思路: const int mod10007; const int N100005;int g[22][N]; int C[N][22],mou[N]; int h[22][N][13];int prime[N],cnt; int tag[N];void init() {int i,j;mou[1]1;f…

powershell /遍歷/psobject/字符串轉換Json/json數組操作

讀取json文檔 $json (Get-Content "C:\HDDList.json" -Raw) | ConvertFrom-Json $select$json.Content.selected[0] $HddCoun$json.Content.normal.Count 遍歷數組 foreach($str in $json.versions) { echo "value: $str" } json數據轉換psobject.pro…

plex實現流媒體服務器_如何從Plex Media Server離線查看下載和同步媒體

plex實現流媒體服務器Streaming content from your Plex Media Server is great, but sometimes—like when you’re going to be offline or stuck with cruddy internet speeds while traveling—there’s no substitution for having a copy of the media stored on your de…

.NET Conf 2022?大會日程全曝光!!前沿、硬核、創意.....精彩就等你來!!

倒計時2天一場規模宏大,內容硬核,大咖齊聚的.NET 領域年度最大的盛會即將開幕.NET Conf 2022 12月3日-12月4日開源 安全 賦能誠邀您的加入立即掃碼預約加入.NET年度盛宴!!.NET Conf China 2022.NET Conf China 2022是面向開發人員…

SpringMVC 數據的格式化、JSR 303數據校驗和國際化

SpringMVC 數據的格式化、JSR 303數據校驗和國際化轉載于:https://www.cnblogs.com/lusufei/p/7400963.html

C# 對程序窗口進程和進程ID

獲取當前激活窗口(頂置) GetForegroundWindow() [DllImport("user32.dll")]public static extern IntPtr GetForegroundWindow();[DllImport("user32.dll", EntryPoint "GetWindowText")]public static extern int GetW…