全部產品
Search
文件中心

Alibaba Cloud Service Mesh:使用ASM網關的流量路由功能

更新時間:Jun 30, 2024

ASM網關提供了圖形化建立目標規則和虛擬服務的功能,無需編寫YAML檔案,簡化流量管理操作。本文介紹如何使用圖形化的方式建立流量策略和路由策略。

前提條件

背景資訊

本文以Reviews服務為例,使用圖形化的方式設定服務的負載平衡、串連池等流量策略,流量策略建立成功後,將自動產生對應目標規則的YAML檔案。以Bookinfo服務為例,使用圖形化的方式為Bookinfo服務建立/productpage/login等路由策略,從而可以通過/productpage等路徑訪問到Bookinfo服務。

建立流量策略

  1. 匯入上遊服務。

    在ASM網關中匯入服務,從而關連網關與服務。

    1. 登入ASM控制台,在左側導覽列,選擇服務網格 > 網格管理

    2. 網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇ASM網關 > 入口網關

    3. 入口網關頁面,單擊目標網關的名稱。

    4. 在網關概覽頁面左側導覽列,單擊上遊服務

    5. 上遊服務頁面,單擊匯入服務

    6. 匯入服務頁面,選擇命名空間,選中reviews服務,單擊上遊服務表徵圖,然後單擊確認

      匯入服務

  2. 對服務進行版本管理。

    按版本給服務的執行個體進行分組,本文以reviews服務為例,將reviews服務分為v1、v2、v3。

    1. 上遊服務頁面,單擊reviews服務右側操作列下的版本管理

    2. 版本管理頁面,單擊添加服務版本(子集),輸入版本名稱v1,單擊添加標籤,設定標籤名version標籤值v1

    3. 單擊添加服務版本(子集),輸入版本名稱v2,單擊添加標籤,設定標籤名version標籤值v2

    4. 再次單擊添加服務版本(子集),輸入版本名稱v3,單擊添加標籤,設定標籤名version標籤值v3,然後單擊建立

  3. 建立流量策略。

    1. 上遊服務頁面,單擊reviews服務右側操作列下的流量策略

    2. 流量策略頁面,單擊添加策略,選擇版本流量策略,選擇v3版本,開啟負載平衡開關,選擇簡單模式,設定均衡方式隨機,然後單擊提交

      流量策略

  4. 可選:查看流量策略建立成功後產生的目標規則的YAML檔案。

    上遊服務頁面,單擊reviews服務右側操作列下的查看YAML,在預覽對話方塊,查看YAML檔案,確認無誤後,單擊確認

    說明

    您也可以在網格詳情頁面左側導覽列,選擇流量管理中心 > 目標規則。在目標規則頁面,單擊目標規則右側操作列下的查看YAML。在編輯對話方塊,查看產生的目標規則的YAML檔案。

    展開查看YAML

    apiVersion: networking.istio.io/v1beta1
    kind: DestinationRule
    metadata:
      name: reviews
      namespace: default
      labels:
        provider: asm
    spec:
      host: reviews
      subsets:
        - name: v1
          labels:
            version: v1
        - name: v2
          labels:
            version: v2
        - name: v3
          labels:
            version: v3
          trafficPolicy:
            loadBalancer:
              simple: RANDOM

建立路由策略

  1. 匯入上遊服務。

    在ASM網關中匯入服務,從而關連網關與服務。

    1. 登入ASM控制台,在左側導覽列,選擇服務網格 > 網格管理

    2. 網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇ASM網關 > 入口網關

    3. 入口網關頁面,單擊目標網關的名稱。

    4. 在網關概覽頁面左側導覽列,單擊上遊服務

    5. 上遊服務頁面,單擊匯入服務

    6. 匯入服務頁面,選擇命名空間,選中productpage服務,單擊上遊服務表徵圖,然後單擊確認

  2. 建立路由策略。

    1. 建立/productpage路由。

      1. 在網關概覽頁面左側導覽列,單擊路由管理,然後單擊建立

      2. 設定路由資訊設定精靈,進行相關配置,單擊下一步

        配置項

        說明

        路由類型

        選擇路由類型,本文配置為http

        命名空間

        選擇命名空間,本文配置為default

        路由名稱

        輸入路由名稱,本文配置為productpage-route

        描述

        輸入路由描述,本文配置為productpage路由

        優先順序

        路由配置存在優先順序關係,優先順序數字越小,表示優先順序越高,如果URI被多個路由規則都能進行匹配,優先匹配高優先順序的,本文配置為3

        匹配規則

        設定URL匹配,只有符合要求的URL才能路由到目標服務。

        開啟匹配請求的URI開關,配置匹配方式精確匹配內容/productpage

        說明

        您也可以單擊添加Header匹配規則,設定Header匹配。

      3. 設定路由目的地設定精靈,進行相關配置,然後單擊下一步

        配置項

        說明

        選擇上遊服務

        設定路由策略生效的服務。本文選擇productpage

        連接埠

        非必填項。設定上遊服務中暴露出來的指定連接埠。上遊服務可能暴露多個連接埠,如果有多個連接埠,需要進行指定。

        版本

        設定路由策略生效的版本。

        權重

        設定路由的目標服務的流量權重。

      4. 進階選項設定精靈,開啟故障注入開關,開啟請求延時開關,設定延時值4s故障注入百分比100,單擊建立

    2. 建立/static路由。

      1. 路由管理頁面,單擊建立

      2. 設定路由資訊設定精靈,進行相關配置,單擊下一步

        配置項

        說明

        路由類型

        選擇路由類型,本文配置為http

        命名空間

        選擇命名空間,本文配置為default

        路由名稱

        輸入路由名稱,本文配置為static

        描述

        輸入路由描述,本文配置為static資源

        優先順序

        路由配置存在優先順序關係,優先順序數字越小,表示優先順序越高,如果URI被多個路由規則都能進行匹配,優先匹配高優先順序的,本文配置為0

        匹配規則

        設定URL匹配,只有符合要求的URL才能路由到目標服務。

        開啟匹配請求的URI開關,配置匹配方式首碼匹配內容/static

      3. 建立/static路由的後續步驟與建立/productpage路由相同,具體操作,請參見建立productpage路由

    3. 建立/login路由。

      1. 路由管理頁面,單擊建立

      2. 設定路由資訊設定精靈,進行相關配置,然後單擊下一步

        配置項

        說明

        路由類型

        選擇路由類型,本文配置為http

        命名空間

        選擇命名空間,本文配置為default

        路由名稱

        輸入路由名稱,本文配置為login

        描述

        輸入路由描述,本文配置為登入請求路由

        優先順序

        路由配置存在優先順序關係,優先順序數字越小,表示優先順序越高,如果URI被多個路由規則都能進行匹配,優先匹配高優先順序的,本文配置為0

        匹配規則

        設定URL匹配,只有符合要求的URL才能路由到目標服務。

        開啟匹配請求的URI開關,配置匹配方式首碼匹配內容/login

      3. 建立/login路由的後續步驟與建立/productpage路由相同,具體操作,請參見建立productpage路由

    4. 建立/logout路由。

      1. 路由管理頁面,單擊建立

      2. 設定路由資訊設定精靈,進行相關配置,然後單擊下一步

        配置項

        說明

        路由類型

        選擇路由類型,本文配置為http

        命名空間

        選擇命名空間,本文配置為default

        路由名稱

        輸入路由名稱,本文配置為logout

        描述

        輸入路由描述,本文配置為登出路由

        優先順序

        路由配置存在優先順序關係,優先順序數字越小,表示優先順序越高,如果URI被多個路由規則都能進行匹配,優先匹配高優先順序的,本文配置為0

        匹配規則

        設定URL匹配,只有符合要求的URL才能路由到目標服務。

        開啟匹配請求的URI開關,配置匹配方式首碼匹配內容/logout

      3. 建立/logout路由的後續步驟與建立/productpage路由相同,具體操作,請參見建立productpage路由

    5. 建立/api/v1/products路由。

      1. 路由管理頁面,單擊建立

      2. 設定路由資訊設定精靈,進行相關配置,然後單擊下一步

        配置項

        說明

        路由類型

        選擇路由類型,本文配置為http

        命名空間

        選擇命名空間,本文配置為default

        路由名稱

        輸入路由名稱,本文配置為products-route

        描述

        輸入路由描述,本文配置為product資訊

        優先順序

        路由配置存在優先順序關係,優先順序數字越小,表示優先順序越高,如果URI被多個路由規則都能進行匹配,優先匹配高優先順序的,本文配置為0

        匹配規則

        設定URL匹配,只有符合要求的URL才能路由到目標服務。

        開啟匹配請求的URI開關,配置匹配方式首碼匹配內容/api/v1/products

      3. 建立/api/v1/products路由的後續步驟與建立/productpage路由相同,具體操作,請參見建立productpage路由

  3. 驗證路由策略是否生效。

    1. 在Google瀏覽器地址欄,輸入http://{入口網關的IP地址}/productpage

      樣本效果如下。訪問服務

    2. 在Bookinfo頁面右上方,單擊Sign in

    3. Please sign in輸入任意帳號和密碼,單擊Sign in

      可以看到能夠正常登入到Bookinfo。登入bookinfo

      您還可以自行使用/logout/static/api/v1/products訪問Bookinfo服務進行驗證。

    4. 在Google瀏覽器右上方,單擊更多表徵圖,選擇更多工具 > 開發人員工具

    5. 重新整理http://{入口網關服務的IP地址}/productpage

      Network頁簽,可以看到約4s的延遲。延遲

  4. 可選:查看路由策略建立成功後產生的虛擬服務的YAML檔案。

    1. 在網格詳情頁面左側導覽列,選擇流量管理中心 > 虛擬服務

    2. 虛擬服務頁面,單擊目標虛擬服務右側操作列下的查看YAML

    3. 編輯對話方塊,查看產生的虛擬服務的YAML檔案。確認無誤後,單擊確定

相關操作

查看服務詳情

查看匯入服務的是否注入Sidecar、地區等資訊。

  1. 登入ASM控制台,在左側導覽列,選擇服務網格 > 網格管理

  2. 網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇ASM網關 > 入口網關

  3. 入口網關頁面,單擊目標網關的名稱。

  4. 在網關概覽頁面左側導覽列,單擊上遊服務

  5. 上遊服務頁面,單擊目標服務右側操作列下的服務詳情

  6. 服務詳情頁面,查看服務是否注入Sidecar、地區等資訊。

路由下線

下線路由策略,使該路由策略失效。

  1. 登入ASM控制台,在左側導覽列,選擇服務網格 > 網格管理

  2. 網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇ASM網關 > 入口網關

  3. 入口網關頁面,單擊目標網關的名稱。

  4. 在網關概覽頁面左側導覽列,單擊路由管理

  5. 路由管理頁面,單擊目標路由右側操作列下的下線

  6. 確認對話方塊,單擊確定

  7. 驗證路由下線是否成功。

    1. 在Google瀏覽器地址欄,輸入http://{入口網關的IP地址}/productpage

    2. 在Bookinfo頁面右上方,單擊Sign in

    3. Please sign in輸入任意帳號和密碼,單擊Sign in

      路由下線

      可以看到頁面顯示找不到網頁,說明目標路由策略失效,路由下線成功。

說明

您可以通過以下方式上線路由策略,使路由策略中重新生效:

路由管理頁面,單擊目標路由右側操作列下的上線,然後在確認對話方塊,單擊確定