微服務(wù)2.0來了宴咧,Istio是一個(gè)服務(wù)網(wǎng)格

去年在公司實(shí)踐了微服務(wù)掺栅,今年逐步完善了整個(gè)架構(gòu)體系氧卧,包括PaaS平臺(tái)的上線和完善沙绝,7月份的時(shí)候參加螞蟻的一個(gè)技術(shù)分享會(huì)闪檬,了解他們?cè)谕苿?dòng)服務(wù)網(wǎng)格购笆,后面逐步關(guān)注這塊同欠,接觸到Istio样傍。這里做一個(gè)記錄。

微服務(wù)并不像過去那樣新鮮和熱铺遂,這絕對(duì)是一件好事。因?yàn)槲覀円呀?jīng)發(fā)展到基于Kubernetes娃循,Openshift和其他各種集裝箱管理系統(tǒng)的穩(wěn)定可靠的領(lǐng)先地步,而不是生活在前沿集裝箱平臺(tái)的時(shí)代“聘現(xiàn)在笛质,基于這些容器編排提供了很多核心功能捞蚂,如負(fù)載平衡妇押,服務(wù)發(fā)現(xiàn)和安全性,這就是在基礎(chǔ)架構(gòu)上創(chuàng)建所謂的服務(wù)網(wǎng)格姓迅。

Istio就是這樣的一個(gè)服務(wù)網(wǎng)絡(luò)產(chǎn)品敲霍,它是僅次于谷歌Kubernetes的開源貢獻(xiàn)。將Istio稱為熱門話題是輕描淡寫的肩杈。

Istio是控制面板扩然,Envoy是數(shù)據(jù)面板

服務(wù)網(wǎng)格使分布式系統(tǒng)的核心功能(如服務(wù)之間的通信)更易于配置和管理界睁。所有應(yīng)用程序所需的通用網(wǎng)絡(luò)功能集(例如處理超時(shí)兵拢,重試,速率限制访惜,路由和負(fù)載平衡)都可以集中處理腻扇,因此每個(gè)應(yīng)用程序無需單獨(dú)處理這些難題疾牲。

這有助于保持業(yè)務(wù)邏輯分離,因此開發(fā)人員可以專注于使用戶滿意衙解,而不必?fù)?dān)心堆棧的較低層阳柔。Istio通過Envoy提供這套解決方案,數(shù)據(jù)面板處理服務(wù)網(wǎng)格中的所有流量蚓峦,以及構(gòu)成管理策略和配置的控制面板的少數(shù)應(yīng)用程序舌剂,即:

  • Pilot - 流量管制 俗稱飛行員
  • Mixer - 后端集成
  • Citadel - 身份驗(yàn)證和授權(quán)
  • Galley - 配置驗(yàn)證

Envoy微服務(wù)代理

Envoy是一個(gè)代理,類似于HAProxy和Nginx暑椰,但專為微服務(wù)架構(gòu)而設(shè)計(jì)霍转。具有以下功能:

  • 動(dòng)態(tài)重新配置/熱重啟
  • 分階段/金絲雀部署
  • 高級(jí)負(fù)載平衡
  • 請(qǐng)求路由
  • 健康檢查
  • 分布式跟蹤

Envoy管理內(nèi)部和外部服務(wù)通信的所有路由要求瑟慈,外部服務(wù)連接受益于故障恢復(fù)功能朋凉,例如超時(shí),重試和斷路器顽冶。Envoy被部署為應(yīng)用程序pod中的sidecar容器召夹,并通過gRPC從Istio控制面板接收其所有配置岩喷。

進(jìn)出應(yīng)用程序的數(shù)據(jù)包被Envoy使用iptables攔截,這允許強(qiáng)大的路由控制和流量可見性监憎,提供詳細(xì)的指標(biāo)纱意。Envoy旨在簡(jiǎn)化高度分布式,面向服務(wù)架構(gòu)中的網(wǎng)絡(luò)和可觀察性的困難鲸阔。高性能和低延遲是任何有價(jià)值的代理的基本特征偷霉,因此使用C ++編寫Envoy是完全合理的迄委。

通過Pilot和Mixer進(jìn)行流量控制和遙測(cè)

Mixer和Pilot是利用Istio服務(wù)網(wǎng)格最重要特征所不可或缺的,即:流量管理和遙測(cè)處理类少。

Pilot

Envoy側(cè)面車從Pilot接收策略以執(zhí)行規(guī)則叙身,例如允許服務(wù)A與服務(wù)B通話,但不允許服務(wù)A與服務(wù)C通話.Pilot提供請(qǐng)求路由和負(fù)載平衡的配置設(shè)置硫狞,以支持分階段發(fā)布曲梗,藍(lán)/綠部署和A / B測(cè)試。

[圖片上傳失敗...(image-4cf5a0-1540467207337)]

由Pilot管理的路由規(guī)則允許Envoy根據(jù)分配給每個(gè)版本的HTTP標(biāo)頭和權(quán)重等條件選擇指定的APP版本妓忍。

[圖片上傳失敗...(image-3f9131-1540467207337)]

來自底層集群基礎(chǔ)設(shè)施比如k8s的服務(wù)注冊(cè)表通過Pilot 發(fā)送到 Envoy 邊車共享給整個(gè)服務(wù)網(wǎng)格,用于動(dòng)態(tài)服務(wù)發(fā)現(xiàn)愧旦。也就是說世剖,Istio不負(fù)責(zé)服務(wù)注冊(cè),服務(wù)注冊(cè)到K8s中笤虫,這樣避免了服務(wù)注冊(cè)的單點(diǎn)風(fēng)險(xiǎn)旁瘫。

Mixer

Mixer有一組支持的適配器,它與Prometheus和Stackdriver等基礎(chǔ)設(shè)施后端對(duì)話琼蚯,以處理和存儲(chǔ)指標(biāo)酬凳,跟蹤和記錄。Envoy將遙測(cè)數(shù)據(jù)發(fā)送到Mixer遭庶,然后Mixer將這些值發(fā)送到配置的后端宁仔。

stio 首先是一個(gè)服務(wù)網(wǎng)絡(luò),但是Istio又不僅僅是服務(wù)網(wǎng)格: 在 Linkerd峦睡, Envoy 這樣的典型服務(wù)網(wǎng)格之上翎苫,Istio提供了一個(gè)完整的解決方案,為整個(gè)服務(wù)網(wǎng)格提供行為洞察和操作控制榨了,以滿足微服務(wù)應(yīng)用程序的多樣化需求煎谍。

Istio在服務(wù)網(wǎng)絡(luò)中統(tǒng)一提供了許多關(guān)鍵功能(以下內(nèi)容來自官方文檔):

  • 流量管理:控制服務(wù)之間的流量和API調(diào)用的流向,使得調(diào)用更可靠龙屉,并使網(wǎng)絡(luò)在惡劣情況下更加健壯呐粘。

  • 可觀察性:了解服務(wù)之間的依賴關(guān)系,以及它們之間流量的本質(zhì)和流向转捕,從而提供快速識(shí)別問題的能力作岖。

  • 策略執(zhí)行:將組織策略應(yīng)用于服務(wù)之間的互動(dòng),確保訪問策略得以執(zhí)行五芝,資源在消費(fèi)者之間良好分配鳍咱。策略的更改是通過配置網(wǎng)格而不是修改應(yīng)用程序代碼。

  • 服務(wù)身份和安全:為網(wǎng)格中的服務(wù)提供可驗(yàn)證身份与柑,并提供保護(hù)服務(wù)流量的能力谤辜,使其可以在不同可信度的網(wǎng)絡(luò)上流轉(zhuǎn)蓄坏。

除此之外,Istio針對(duì)可擴(kuò)展性進(jìn)行了設(shè)計(jì)丑念,以滿足不同的部署需要:

  • 平臺(tái)支持:Istio旨在在各種環(huán)境中運(yùn)行涡戳,包括跨云, 預(yù)置脯倚,Kubernetes渔彰,Mesos等。最初專注于Kubernetes推正,但很快將支持其他環(huán)境恍涂。

  • 集成和定制:策略執(zhí)行組件可以擴(kuò)展和定制,以便與現(xiàn)有的ACL植榕,日志再沧,監(jiān)控,配額尊残,審核等解決方案集成炒瘸。

這些功能極大的減少了應(yīng)用程序代碼,底層平臺(tái)和策略之間的耦合寝衫,使微服務(wù)更容易實(shí)現(xiàn)顷扩。

istio架構(gòu)圖

image

Istio的關(guān)鍵功能包括:

  • HTTP/1.1,HTTP/2慰毅,gRPC和TCP流量的自動(dòng)區(qū)域感知負(fù)載平衡和故障切換隘截。
  • 通過豐富的路由規(guī)則,容錯(cuò)和故障注入汹胃,對(duì)流行為的細(xì)粒度控制技俐。
  • 支持訪問控制,速率限制和配額的可插拔策略層和配置API统台。
  • 集群內(nèi)所有流量的自動(dòng)量度雕擂,日志和跟蹤,包括集群入口和出口贱勃。
  • 安全的服務(wù)到服務(wù)身份驗(yàn)證井赌,在集群中的服務(wù)之間具有強(qiáng)大的身份標(biāo)識(shí)。

總結(jié)

在沒有像Istio這樣的服務(wù)網(wǎng)格的情況下管理分階段部署和應(yīng)用程序版本并非易事贵扰。Envoy和Istio控制面板組件通過編碼請(qǐng)求路由配置仇穗,并將該控制權(quán)交給開發(fā)人員來支持組織的DevOps計(jì)劃。

Istio網(wǎng)格的另一個(gè)重要特性是您無需安裝或使用所有組件戚绕。我們建議利用Istio的跟蹤功能來可視化流量在您的服務(wù)和網(wǎng)絡(luò)之間流動(dòng)的方式纹坐。這是開始使用Istio的完美方式,因?yàn)樗梢钥焖佥p松地進(jìn)行配置舞丛,并且無需更改您的微服務(wù)即可開始受益于此遙測(cè)耘子。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末果漾,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子谷誓,更是在濱河造成了極大的恐慌绒障,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捍歪,死亡現(xiàn)場(chǎng)離奇詭異户辱,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)糙臼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門庐镐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人变逃,你說我怎么就攤上這事必逆。” “怎么了韧献?”我有些...
    開封第一講書人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)研叫。 經(jīng)常有香客問我锤窑,道長(zhǎng),這世上最難降的妖魔是什么嚷炉? 我笑而不...
    開封第一講書人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任渊啰,我火速辦了婚禮,結(jié)果婚禮上申屹,老公的妹妹穿的比我還像新娘绘证。我一直安慰自己,他們只是感情好哗讥,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開白布嚷那。 她就那樣靜靜地躺著,像睡著了一般杆煞。 火紅的嫁衣襯著肌膚如雪魏宽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評(píng)論 1 305
  • 那天决乎,我揣著相機(jī)與錄音队询,去河邊找鬼。 笑死构诚,一個(gè)胖子當(dāng)著我的面吹牛蚌斩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播范嘱,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼送膳,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼员魏!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起肠缨,我...
    開封第一講書人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤逆趋,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后晒奕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體闻书,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年脑慧,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了魄眉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡闷袒,死狀恐怖坑律,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情囊骤,我是刑警寧澤晃择,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站也物,受9級(jí)特大地震影響宫屠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜滑蚯,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一浪蹂、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧告材,春花似錦坤次、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至疤剑,卻和暖如春洛波,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背骚露。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來泰國打工蹬挤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人棘幸。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓焰扳,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子吨悍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容