動態路由:用VirtualService和DestinationRule設置路由規則

路由是流量控制中最重要、最經常使用的功能,在Istio中使用VirtualService和DestinationRule這二個API資源來實現。app

VirtualService

VirtualService(虛擬服務)定義了一組尋址主機時要應用的流量路由規則。每一個路由規則爲特定協議的流量定義匹配條件。若是流量匹配,則將其發送到註冊表中定義的命名目標服務(或其子集/版本)。
image
功能:spa

  • 定義路由規則
  • 描述知足條件的請求去哪裏

DestinationRule

DestinationRule(目標規則)定義在發生路由後應用於服務流量的策略。3d

功能:code

  • 定義子集、策略
  • 描述到達目標的請求怎麼處理

目標規則是配合虛擬服務來使用的,主要用來定義子集,子集實際上就是具體的目標地址,除此之外,它主要描述的是到達目標請求後如何去處理,所謂的目標就是子集,而如何處理就是指具體的策略。blog

應用

將productpage的請求打到reviews的v1版本資源

image

  1. 部署virtual service

kubectl apply -f virtual-service-all-v1.yaml路由

image

  1. 部署destination rule

kubectl apply -f destination-rule-all.yaml
image部署

  1. 從新訪問productpage頁面

image
屢次刷新頁面後,可發現老是隻訪問reviews的v1版本it

相關文章
相關標籤/搜索