介紹
隨著k8s在業(yè)界的普及應(yīng)用中,它已成為容器編排和管理的標(biāo)準(zhǔn),但在微服務(wù)架構(gòu)中,服務(wù)之間的通信、流量管理、可觀察性和安全性等方面仍然存在挑戰(zhàn)。
istio服務(wù)網(wǎng)格是一種用于管理和連接微服務(wù)架構(gòu)中服務(wù)之間通信的基礎(chǔ)組件(集群內(nèi)部通信),并且也可作為網(wǎng)關(guān)層接受外部流量,根據(jù)請(qǐng)求URI進(jìn)行流量路由(集群外部請(qǐng)求),它包括服務(wù)發(fā)現(xiàn)、負(fù)載均衡、故障恢復(fù)、故障轉(zhuǎn)移、鏈路調(diào)用監(jiān)控等。服務(wù)網(wǎng)格通常還有更復(fù)雜的運(yùn)維需求,比如 A/B 測(cè)試、金絲雀發(fā)布、速率限制、訪問控制、端到端認(rèn)證,本文章將詳細(xì)介紹istio在k8s中如何控制服務(wù)間進(jìn)行通信。
Istio架構(gòu)圖

istio架構(gòu)圖.png
- 數(shù)據(jù)平面 由一組智能代理(Envoy)組成,被部署為 Sidecar。這些代理負(fù)責(zé)協(xié)調(diào)和控制微服務(wù)之間的所有網(wǎng)絡(luò)通信。它們還收集和報(bào)告所有網(wǎng)格流量的遙測(cè)數(shù)據(jù)。
- 控制平面 管理并配置代理來進(jìn)行流量路由,控制整個(gè)服務(wù)網(wǎng)格的行為。控制平面的主要任務(wù)是定義、配置和監(jiān)控服務(wù)之間的通信規(guī)則以及執(zhí)行相關(guān)的策略。