掌控隨心 - 服務網格的流量管理藝術 (Istio 實例)

掌控隨心 - 服務網格的流量管理藝術 (Istio 實例)


想象一下,沒有服務網格的時候,我們要實現像“將 1% 的用戶流量導入到新版本應用”、“根據用戶設備類型訪問不同后端”、“模擬下游服務故障”這類高級流量策略,通常需要在代碼、負載均衡器、API 網關等多個地方進行復雜且分散的配置。

而服務網格(以 Istio 為例)提供了一套統一的、聲明式的 API(通過 Kubernetes CRD),讓你能夠像指揮家一樣,優雅地編排服務間的流量樂章。其中最重要的“指揮棒”就是以下三個資源:

1. 入口管理:Gateway - 網格的“看門人”

  • 作用Gateway 資源本身不處理流量,而是用來配置運行在網格邊緣的 Envoy 代理(通常是 istio-ingressgateway 這個 Deployment)。它定義了哪些端口對外開放、使用什么協議(HTTP, HTTPS, GRPC, TCP)、以及關聯的 TLS 證書等 L4-L6 層配置。它控制著進入服務網格的流量入口點。

  • 類比Gateway 就像是城市的主要入口大門或高速公路收費站。它規定了哪個大門(端口)是開放的,允許哪種類型的車輛(協議)進入,以及是否需要安檢(TLS)。但它不負責告訴你進入城市后具體該去哪里。

  • YAML 示例 (輸入):配置一個 HTTP 入口,監聽 80 端口,處理 myapp.example.com 的流量。

    apiVersion: networking.istio.io/v1beta1
    kind: Gateway
    metadata:name: myapp-gatewaynamespace: istio-system # 通常 Ingress Gateway 部署在 istio-system
    spec:# selector 非常重要,它關聯到運行 Ingress Gateway 的 Envoy Podselector:istio: ingressgatewayservers:- port:number: 80name: httpprotocol: HTTPhosts:- "myapp.example.com" # 指定此網關處理哪個域名(或通配符)的流量#  tls: # 如果需要 HTTPS,可以在這里配置#    mode: SIMPLE # 或 MUTUAL#    credentialName: myapp-tls-secret # 引用包含證書和私鑰的 K8s Secret
    
  • 關鍵字段解釋

    • selector: 將此 Gateway 配置應用到哪些 Envoy 代理 Pod 上(通過標簽匹配)。
    • servers: 定義監聽的端口、協議和關聯的主機名。
    • port: number, name, protocol (HTTP, HTTPS, GRPC, TCP, TLS 等)。
    • hosts: 一個或多個主機名,支持通配符。
    • tls: (可選) 配置 TLS 模式(單向 SIMPLE 或雙向 MUTUAL)及引用的證書 Secret。
  • 效果 (輸出):應用此配置后 (kubectl apply -f ...),Istio 控制平面會指令匹配 selector 的 Envoy 代理(即 istio-ingressgateway Pods)監聽指定的端口,并準備接收匹配 hosts 的流量。它只負責“開門”,不負責“指路”

2. 路由規則:VirtualService - 網格的“GPS 導航”

  • 作用VirtualService 定義了服務請求的路由規則

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

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

相關文章

[ARM][匯編] 01.基礎概念

目錄 1.全局標號 1.1.使用方法 1.1.1.聲明全局標號 1.1.2.定義全局標號 1.1.3.引用全局標號 1.2.全局標號與局部標號的區別 1.3.注意事項 2.局部標號 2.1.使用方法 2.1.1.定義局部標號 2.1.2.跳轉引用 2.2.局部標號與全局標號的對比 2.3.注意事項 3.符號定義偽指…

如何使用遠程桌面控制電腦

目的: 通過路由器使用pc控制臺式機,實現了有線/無線pc與臺式機的雙向遠程桌面控制 最核心就兩條:get ip地址與被控制機器的賬戶與密碼。 現象挺神奇:被控制電腦的電腦桌面處于休眠模式,此時強行喚醒被控電腦會導致中斷…

Hive表JOIN性能問

在處理100TB的Hive表JOIN性能問題時,需采用分層優化策略,結合數據分布特征、存儲格式和計算引擎特性。以下是系統性優化方案: 1. 數據傾斜優化(Skew Join) 1.1 識別傾斜鍵 方法:統計JOIN鍵的分布頻率&…

MongoDB 的核心概念(文檔、集合、數據庫、BSON)是什么?

MongoDB 是一個面向文檔的數據庫,它的核心概念與傳統的關系型數據庫(RDBMS)有所不同。以下是它的四個主要核心概念: 文檔 (Document) 定義: 文檔是 MongoDB 中的基本數據單元。它類似于關系型數據庫中的一行記錄&#…

AI智慧公園管理方案:用科技重塑市民的“夜游體驗”

AI智慧公園管理方案:多場景智能巡檢與安全防控 一、背景與痛點分析 夏季夜間,公園成為市民休閑娛樂的核心場所,但管理難度隨之激增: 寵物管理失控:未牽繩寵物進入園區,隨地排泄、驚擾游客,甚…

Spring Cloud Gateway 聚合 Swagger 文檔:一站式API管理解決方案

前言 在微服務架構中,隨著服務數量的增加,API文檔管理變得越來越復雜。每個微服務都有自己的Swagger文檔,開發人員需要記住每個服務的文檔地址,這無疑增加了開發難度。本文將介紹如何使用Spring Cloud Gateway聚合所有微服務的Sw…

尼康VR鏡頭防抖模式NORMAL和ACTIVE的區別(私人筆記)

1. NORMAL 模式(常規模式) 適用場景:一般手持拍攝,比如人像、靜物、風景或緩慢平移鏡頭(如水平追拍)等。工作特性: 補償手抖引起的小幅度震動(比如手持時自然的不穩)&am…

Babylon.js學習之路《四、Babylon.js 中的相機(Camera)與視角控制》

文章目錄 1. 引言:為什么相機是 3D 場景的“眼睛”?1.1 相機的核心作用1.2 常見相機類型概覽 2. 相機基礎參數解析2.1 通用屬性2.2 相機坐標系 3. 詳解常用相機類型3.1 自由相機(FreeCamera)3.2 弧形旋轉相機(ArcRotat…

【Python】普通方法、類方法和靜態方法的區分

Python 中普通方法、類方法和靜態方法的區分 下面我將從多個維度對這三種方法進行詳細對比,并通過示例說明它們的使用場景和區別。 1. 核心區別總結 特性普通方法(實例方法)類方法(classmethod)靜態方法(staticmethod)定義裝飾器無classmethodstaticmethod第一個…

geoserver發布arcgis瓦片地圖服務(最新版本)

第一步:下載geoserver服務,進入bin目錄啟動 需要提前安裝好JDK環境,1.8及以上版本 安裝完成,頁面訪問端口,進入控制臺界面,默認用戶名密碼admin/geoserver 第二步:下載地圖 破解版全能電子地圖下載器&…

Linux服務之lvs集群與dr模式部署

目錄 一.lvs相關概述 1.lvs集群的工作模式 2.lvs調度算法 3.ipvsadm工具 二.DR模式部署 一.lvs相關概述 1.lvs集群的工作模式 lvs-nat:修改請求報文的目標IP,多目標IP的DNAT lvs-dr:操縱封裝新的MAC地址(直接路由)lvs-tu…

OFCMS代碼審計-freemaker注入sql注入xxexss文件上傳

環境搭建 下載地址&#xff1a;https://gitee.com/oufu/ofcms/repository/archive/V1.1.2?formatzip SSTI模板注入&#xff08;freemaker) FreeMarker模板注入實現遠程命令執行 - Eleven_Liu - 博客園 在admin中找到這個 發現請求的是這個 找到他 <#assign value"f…

一鍵部署NSFW檢測模型:快速識別并過濾敏感圖片內容

以下是對nsfw_detector的簡單介紹&#xff1a; nsfw_detector是一個 NSFW 內容檢測器&#xff0c;支持快速docker私有部署&#xff0c;提供API服務低資源消耗&#xff0c;2GB內存即可運行該模型&#xff0c;多核CPU自動調度加速推理 - 可以識別多種文件類型&#xff1a;圖片、…

【Redis】緩存穿透、緩存雪崩、緩存擊穿

1.緩存穿透 是指客戶端請求的數據在緩存中和數據庫中都不存在&#xff0c;這樣緩存永遠不會生效&#xff0c;導致請求直接穿透緩存到達數據庫&#xff0c;給數據庫帶來壓力的情況。 常見的解決方案有兩種&#xff1a; 緩存空對象&#xff1a;實現簡單&#xff0c;維護方便&am…

【C】初階數據結構15 -- 計數排序與穩定性分析

本文主要講解七大排序算法之外的另一種排序算法 -- 計數排序 目錄 1 計數排序 1&#xff09; 算法思想 2&#xff09; 代碼 3&#xff09; 時間復雜度與空間復雜度分析 &#xff08;1&#xff09; 時間復雜度 &#xff08;2&#xff09; 空間復雜度 4&#xff09; 計…

mysql的一個缺點

最近再移植一個從oracle轉mysql的項目&#xff0c;喜提一個報錯&#xff1a; You cant specify target table A016 for update in FROM clause 對應的程序代碼&#xff1a; public void setCurrent(String setId, String pk, String userId) throws SysException {String[]…

Ubuntu 上安裝 FTP 服務、開放指定端口并創建用戶

一、安裝 FTP 服務&#xff08;vsftpd&#xff09; sudo apt update sudo apt install vsftpd -y二、修改 vsftpd 配置&#xff0c;使用 21000 端口 編輯配置文件&#xff1a; sudo nano /etc/vsftpd.conf修改或添加以下配置&#xff1a; 使用以下配置文件需要修改的地方:l…

用自寫的jQuery庫+Ajax實現了省市聯動

1. 省市聯動&#xff1a;在網頁上&#xff0c;選擇對應的省份之后&#xff0c;動態的關聯出該省份對應的市。選擇對應的市之后&#xff0c;動態地關聯出城市對應的區。 2. 設計數據庫表 t_area &#xff08;區域表&#xff09; id(PK-自增) code name pcode ------------…

【行為型之迭代器模式】游戲開發實戰——Unity高效集合遍歷與場景管理的架構精髓

文章目錄 &#x1f504; 迭代器模式&#xff08;Iterator Pattern&#xff09;深度解析一、模式本質與核心價值二、經典UML結構三、Unity實戰代碼&#xff08;背包系統遍歷&#xff09;1. 定義迭代器與聚合接口2. 實現具體聚合類&#xff08;背包物品集合&#xff09;3. 實現具…

18前端項目----Vue項目收尾優化|重要知識

收尾/知識點匯總 項目收尾二級路由未登錄全局路由守衛路由獨享守衛圖片懶加載路由懶加載打包上線 重要知識點匯總組件通信方式1. props2. 自定義事件3. 全局事件總線4. 訂閱與發布pubsub5. Vuex6. 插槽 sync修飾符attrs和listeners屬性children和parent屬性mixin混入作用域插槽…