0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Istio里的VirtualService和DestinationRule介紹

阿銘linux ? 來源:阿銘linux ? 2023-07-12 08:50 ? 次閱讀

最近在研究Istio,流量治理這塊是一個大頭,有好多內(nèi)容。后期我應(yīng)該會單獨搞一個小課程出來。這塊兒內(nèi)容有兩個非常核心的概念--VirtualService和DestinationRule。

1)VirtualService:

定義對特定目標服務(wù)的一組流量規(guī)則,它將滿足條件的流量轉(zhuǎn)發(fā)到對應(yīng)的服務(wù)后端,這個服務(wù)后端可以是一個或多個服務(wù),也可以是DestinationRule定義的服務(wù)子集(subset)。

示例:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: forecast-route
spec:
  hosts:  ##定義流量發(fā)送的目標地址,可以是service名字也可以是具體的IP地址,通常是service的名字。
  - forecast 
  http:  ##這個字段可以是http、tcp或者tls(https)
  - match: ##定義匹配規(guī)則
    - headers:  ##匹配header中l(wèi)ocation取值為north的請求
        location:
        exact: north
    route: ##定義具體的路由規(guī)則,這里指的是當(dāng)請求符合匹配規(guī)則時,走該規(guī)則
    - destination: ##定義流量被轉(zhuǎn)發(fā)到哪里去
      host: forecast  ##這個host跟上面的host類似,通常也是用service名字定義
      subset: v2   ##具體規(guī)則需要在DestinationRule中定義,這里只是指定一個名字v2
  - route:
    - destination:
      host: forecast
      subset: v1

說明:這個小例子定義了兩條規(guī)則,1)如果過來的請求header中,location匹配了north關(guān)鍵詞,則會訪問forecast這個service的v2版本;2)否則會訪問到forecast服務(wù)的v1版本。其中v1和v2的具體流量走向還得看DestinationRule如何定義。

2)DestinationRule:

它用來定義流量路由之后的去處,和VirtualService配合使用,在VirtualService中定義了subsets的名字,那么在DestinationRule中定義subsets具體的內(nèi)容,而且在DestinationRule里還提供了具體的流量策略。

示例:

apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name:forecast-dr##定義DestinationRule的名字
spec:
  host: forecast ##定義流量發(fā)送的目標地址,和VirtualService中的該字段含義一樣
  subsets:  ##定義subsets規(guī)則
  - name: v2  ##名字是v2,和VirtualService里定義的要保持一致
    labels:
      version: v2
    trafficPolicy:  ##定義流量策略,可選字段trafficPolicy、connectionPool(連接池設(shè)置,可以實現(xiàn)限速或限流的效果)、outlierDetection(異常點檢查,可以做熔斷效果)、tls
      loadBalancer:  ##定義負載均衡算法,可選字段simple、consistentHash(一致性hash)、localityLbSetting(位置負載均衡)
        simple: ROUND_ROBIN  ##simple指的是標準負載均衡算法,可以是ROUND_ROBIN、LEAST_CONN(最少連接)、RANDOM(隨機)、PASSTHROUGH(直接轉(zhuǎn)發(fā)到客戶端連接的目標地址,即沒有做負載均衡)
  - name: v1
    labels:
      version: v1

說明:主要定義v1和v2的流量策略,其中v2會走ROUND_ROBIN的負載均衡算法,而v1沒有特殊的流量策略。

可以毫不夸張地講,Istio的流量治理離不開VirtualService和DestinationRule的配置,上面的兩個示例僅僅是一丟丟皮毛,還有好多參數(shù)可以配置。比如,限流、熔斷、灰度發(fā)布等等。




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 負載均衡算法
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    6917

原文標題:Istio里的VirtualService和DestinationRule

文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    文丘管應(yīng)用介紹

    文丘管是根據(jù)文丘效應(yīng)研制開發(fā)的一種節(jié)流式流量傳感器,是一種標準節(jié)流裝置。文丘管按結(jié)構(gòu)分為標準文丘管和通用文丘管。文丘
    發(fā)表于 12-01 15:47

    rancher2試玩安裝istio和bookinfo示例

    rancher2試玩istio,安裝部署官方示例bookinfo體驗
    發(fā)表于 03-14 12:29

    請問有tvp5158的VBUS的詳細介紹

    手冊沒有tvp5158的VBUS的詳細介紹,只有個patch Patch Code Download Guidelines,我想了解具體VBUS,請問有相關(guān)文檔嗎?
    發(fā)表于 06-06 11:47

    介紹i.MXRT啟動頭FDCB的lookupTable

    大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是i.MXRT啟動頭FDCB的lookupTable。一個MCU內(nèi)部通常有很多外設(shè)模塊,這些外設(shè)模塊是各MCU廠商做差異化產(chǎn)...
    發(fā)表于 02-17 07:47

    string.c相關(guān)函數(shù)介紹

    一、string.c相關(guān)函數(shù)介紹string.h主要包含了C語言對字符串操作的相關(guān)函數(shù),這篇文章就介紹幾個比較常用的函數(shù)重新自己實現(xiàn)。并且每個函數(shù)給出了2種以上的不同寫法,全部采用
    發(fā)表于 02-28 09:46

    如何在Arm上利用Istio搭建一個基于Kubernetes的Service Mesh平臺

    ,另一方面,又通過Service Function Chain將各個服務(wù)有機的連接在一起,從而組合實現(xiàn)復(fù)雜的功能。在這篇文章中,我們將介紹如何在Arm平臺上,利用Istio,搭建一個
    發(fā)表于 03-30 10:59

    搭建基于Arm的kubernetes+Istio開發(fā)環(huán)境

    1、如何在Arm平臺上利用Istio搭建一個基于Kubernetes的Service Mesh平臺隨著云計算的普及,越來越多的公司、組織及個人開發(fā)者開始將業(yè)務(wù)轉(zhuǎn)移至云服務(wù)提供商(如Ali,GKE
    發(fā)表于 07-12 15:39

    在線路設(shè)計“地”有多少種

    在PADS如何分地在后面的文章介紹。以下是網(wǎng)上下的關(guān)于地的劃分,供參考:
    發(fā)表于 06-26 16:18 ?1380次閱讀

    MP3方案藍牙方案介紹.pdf

    MP3方案藍牙方案介紹
    發(fā)表于 05-02 16:39 ?83次下載

    阿里云Kubernetes Service Mesh實踐進行時(1): Istio初體驗

    環(huán)境和基礎(chǔ)設(shè)施后端,從這些細節(jié)中抽象出Envoy代理和Istio管理的服務(wù)。 后續(xù)文章會陸續(xù)介紹相關(guān)內(nèi)容。PilotPilot負責(zé)收集和驗證配置并將其傳播到各種Istio組件。它從Mixer
    發(fā)表于 07-24 17:14 ?234次閱讀

    華為云國內(nèi)首發(fā)Istio服務(wù)網(wǎng)格

    華為云國內(nèi)首家推出了Istio服務(wù)網(wǎng)格產(chǎn)品,該產(chǎn)品與CCE容器引擎深度整合,提供非侵入、智能流量治理的應(yīng)用全生命周期管理方案,增強了華為云容器服務(wù)全棧能力。 華為EBG中國區(qū)行業(yè)云拓展部部長胡維琦做
    的頭像 發(fā)表于 09-08 09:36 ?3714次閱讀

    Nacos 1.1.4 發(fā)布,業(yè)界率先支持 Istio MCP 協(xié)議

    Nacos是阿里巴巴開源的服務(wù)發(fā)現(xiàn)與配置管理項目,本次發(fā)布的1.1.4版本,主要帶來的是與Istio的對接功能,使用的是Istio最新的MCP協(xié)議。本文將介紹包括這個功能在內(nèi)的新版本發(fā)布的功能。升級
    發(fā)表于 11-14 23:06 ?1496次閱讀

    既然有了Kubernetes,為什么還需要Istio?

    Envoy 引入了 xDS 協(xié)議,該協(xié)議受到各種開源軟件的支持,例如Istio、MOSN等。Envoy 將 xDS 貢獻給服務(wù)網(wǎng)格或云原生基礎(chǔ)設(shè)施。Envoy 本質(zhì)上是一個現(xiàn)代版本的代理,可以通過
    的頭像 發(fā)表于 12-11 17:28 ?782次閱讀
    既然有了Kubernetes,為什么還需要<b class='flag-5'>Istio</b>?

    成為Istio專家,開啟云原生應(yīng)用之旅!

    ICA (Istio Certified Associate)認證考試展示了對Istio原則、術(shù)語和最佳實踐的深入理解,以便建立Istio。這對于在當(dāng)今日益復(fù)雜的微服務(wù)計算環(huán)境中工作至關(guān)重要。
    的頭像 發(fā)表于 02-21 15:11 ?346次閱讀
    成為<b class='flag-5'>Istio</b>專家,開啟云原生應(yīng)用之旅!

    深度解析Istio Proxy邊車容器的功能與能力

    在創(chuàng)建Pod的請求到達Kube-apiserver后,首先進行認證鑒權(quán),然后在準入控制階段 kube-apiserver以REST的方式同步調(diào)用sidecar-injector webhook服務(wù)進行init容器與istio-proxy容器的注入,最后將Pod對象持久化存儲到Etcd中。
    發(fā)表于 03-04 09:43 ?1113次閱讀
    深度解析<b class='flag-5'>Istio</b> Proxy邊車容器的功能與能力