ASM網關提供了圖形化創建目標規則和虛擬服務的功能,無需編寫YAML文件,簡化流量管理操作。本文介紹如何使用圖形化的方式創建流量策略和路由策略。
前提條件
已添加集群到ASM實例。具體操作,請參見添加集群到ASM實例。
已部署入口網關。具體操作,請參見創建入口網關。
已部署應用到ASM實例關聯的集群。具體操作,請參見在ASM實例關聯的集群中部署應用。
已為命名空間注入Sidecar。具體操作,請參見啟用自動注入。
已獲取ASM網關地址。具體操作,請參見獲取入口網關地址。
背景信息
本文以Reviews服務為例,使用圖形化的方式設置服務的負載均衡、連接池等流量策略,流量策略創建成功后,將自動生成對應目標規則的YAML文件。以Bookinfo服務為例,使用圖形化的方式為Bookinfo服務創建/productpage、/login等路由策略,從而可以通過/productpage等路徑訪問到Bookinfo服務。
創建流量策略
導入上游服務。
在ASM網關中導入服務,從而關聯網關與服務。
登錄ASM控制臺,在左側導航欄,選擇 。
在網格管理頁面,單擊目標實例名稱,然后在左側導航欄,選擇 。
在入口網關頁面,單擊目標網關的名稱。
在網關概覽頁面左側導航欄,單擊上游服務。
在上游服務頁面,單擊導入服務。
在導入服務頁面,選擇命名空間,選中reviews服務,單擊圖標,然后單擊確認。
對服務進行版本管理。
按版本給服務的實例進行分組,本文以reviews服務為例,將reviews服務分為v1、v2、v3。
在上游服務頁面,單擊reviews服務右側操作列下的版本管理。
在版本管理頁面,單擊添加服務版本(子集),輸入版本名稱為v1,單擊添加標簽,設置標簽名為version,標簽值為v1。
單擊添加服務版本(子集),輸入版本名稱為v2,單擊添加標簽,設置標簽名為version,標簽值為v2。
再次單擊添加服務版本(子集),輸入版本名稱為v3,單擊添加標簽,設置標簽名為version,標簽值為v3,然后單擊創建。
創建流量策略。
在上游服務頁面,單擊reviews服務右側操作列下的流量策略。
在流量策略頁面,單擊添加策略,選擇版本流量策略,選擇v3版本,打開負載均衡開關,選擇簡單模式,設置均衡方式為隨機,然后單擊提交。
可選:查看流量策略創建成功后生成的目標規則的YAML文件。
在上游服務頁面,單擊reviews服務右側操作列下的查看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
創建路由策略
導入上游服務。
在ASM網關中導入服務,從而關聯網關與服務。
登錄ASM控制臺,在左側導航欄,選擇 。
在網格管理頁面,單擊目標實例名稱,然后在左側導航欄,選擇 。
在入口網關頁面,單擊目標網關的名稱。
在網關概覽頁面左側導航欄,單擊上游服務。
在上游服務頁面,單擊導入服務。
在導入服務頁面,選擇命名空間,選中productpage服務,單擊圖標,然后單擊確認。
創建路由策略。
創建/productpage路由。
在網關概覽頁面左側導航欄,單擊路由管理,然后單擊創建。
在設置路由信息配置向導,進行相關配置,單擊下一步。
配置項
說明
路由類型
選擇路由類型,本文配置為http。
命名空間
選擇命名空間,本文配置為default。
路由名稱
輸入路由名稱,本文配置為productpage-route。
描述
輸入路由描述,本文配置為productpage路由。
優先級
路由配置存在優先級關系,優先級數字越小,表示優先級越高,如果URI被多個路由規則都能進行匹配,優先匹配高優先級的,本文配置為3。
匹配規則
設置URL匹配,只有符合要求的URL才能路由到目標服務。
打開匹配請求的URI開關,配置匹配方式為精確,匹配內容為/productpage。
說明您也可以單擊添加Header匹配規則,設置Header匹配。
在設置路由目的地配置向導,進行相關配置,然后單擊下一步。
配置項
說明
選擇上游服務
設置路由策略生效的服務。本文選擇productpage。
端口
非必填項。設置上游服務中暴露出來的指定端口。上游服務可能暴露多個端口,如果有多個端口,需要進行指定。
版本
設置路由策略生效的版本。
權重
設置路由的目標服務的流量權重。
在高級選項配置向導,打開故障注入開關,打開請求延時開關,設置延時值為4s,故障注入百分比為100,單擊創建。
創建/static路由。
在路由管理頁面,單擊創建。
在設置路由信息配置向導,進行相關配置,單擊下一步。
配置項
說明
路由類型
選擇路由類型,本文配置為http。
命名空間
選擇命名空間,本文配置為default。
路由名稱
輸入路由名稱,本文配置為static。
描述
輸入路由描述,本文配置為static資源。
優先級
路由配置存在優先級關系,優先級數字越小,表示優先級越高,如果URI被多個路由規則都能進行匹配,優先匹配高優先級的,本文配置為0。
匹配規則
設置URL匹配,只有符合要求的URL才能路由到目標服務。
打開匹配請求的URI開關,配置匹配方式為前綴,匹配內容為/static。
創建/static路由的后續步驟與創建/productpage路由相同,具體操作,請參見創建productpage路由 。
創建/login路由。
在路由管理頁面,單擊創建。
在設置路由信息配置向導,進行相關配置,然后單擊下一步。
配置項
說明
路由類型
選擇路由類型,本文配置為http
命名空間
選擇命名空間,本文配置為default。
路由名稱
輸入路由名稱,本文配置為login。
描述
輸入路由描述,本文配置為登錄請求路由。
優先級
路由配置存在優先級關系,優先級數字越小,表示優先級越高,如果URI被多個路由規則都能進行匹配,優先匹配高優先級的,本文配置為0。
匹配規則
設置URL匹配,只有符合要求的URL才能路由到目標服務。
打開匹配請求的URI開關,配置匹配方式為前綴,匹配內容為/login。
創建/login路由的后續步驟與創建/productpage路由相同,具體操作,請參見創建productpage路由 。
創建/logout路由。
在路由管理頁面,單擊創建。
在設置路由信息配置向導,進行相關配置,然后單擊下一步。
配置項
說明
路由類型
選擇路由類型,本文配置為http。
命名空間
選擇命名空間,本文配置為default。
路由名稱
輸入路由名稱,本文配置為logout。
描述
輸入路由描述,本文配置為登出路由。
優先級
路由配置存在優先級關系,優先級數字越小,表示優先級越高,如果URI被多個路由規則都能進行匹配,優先匹配高優先級的,本文配置為0。
匹配規則
設置URL匹配,只有符合要求的URL才能路由到目標服務。
打開匹配請求的URI開關,配置匹配方式為前綴,匹配內容為/logout。
創建/logout路由的后續步驟與創建/productpage路由相同,具體操作,請參見創建productpage路由 。
創建/api/v1/products路由。
在路由管理頁面,單擊創建。
在設置路由信息配置向導,進行相關配置,然后單擊下一步。
配置項
說明
路由類型
選擇路由類型,本文配置為http。
命名空間
選擇命名空間,本文配置為default。
路由名稱
輸入路由名稱,本文配置為products-route。
描述
輸入路由描述,本文配置為product信息。
優先級
路由配置存在優先級關系,優先級數字越小,表示優先級越高,如果URI被多個路由規則都能進行匹配,優先匹配高優先級的,本文配置為0。
匹配規則
設置URL匹配,只有符合要求的URL才能路由到目標服務。
打開匹配請求的URI開關,配置匹配方式為前綴,匹配內容為/api/v1/products。
創建/api/v1/products路由的后續步驟與創建/productpage路由相同,具體操作,請參見創建productpage路由 。
驗證路由策略是否生效。
在谷歌瀏覽器地址欄,輸入http://{入口網關的IP地址}/productpage。
示例效果如下。
在Bookinfo頁面右上角,單擊Sign in。
在Please sign in輸入任意賬號和密碼,單擊Sign in。
可以看到能夠正常登錄到Bookinfo。
您還可以自行使用/logout、/static、/api/v1/products訪問Bookinfo服務進行驗證。
在谷歌瀏覽器右上角,單擊圖標,選擇 。
刷新http://{入口網關服務的IP地址}/productpage。
在Network頁簽,可以看到約4s的延遲。
可選:查看路由策略創建成功后生成的虛擬服務的YAML文件。
在網格詳情頁面左側導航欄,選擇 。
在虛擬服務頁面,單擊目標虛擬服務右側操作列下的查看YAML。
在編輯對話框,查看生成的虛擬服務的YAML文件。確認無誤后,單擊確定。
相關操作
查看服務詳情
查看導入服務的是否注入Sidecar、地域等信息。
登錄ASM控制臺,在左側導航欄,選擇 。
在網格管理頁面,單擊目標實例名稱,然后在左側導航欄,選擇 。
在入口網關頁面,單擊目標網關的名稱。
在網關概覽頁面左側導航欄,單擊上游服務。
在上游服務頁面,單擊目標服務右側操作列下的服務詳情。
在服務詳情頁面,查看服務是否注入Sidecar、地域等信息。
路由下線
下線路由策略,使該路由策略失效。
登錄ASM控制臺,在左側導航欄,選擇 。
在網格管理頁面,單擊目標實例名稱,然后在左側導航欄,選擇 。
在入口網關頁面,單擊目標網關的名稱。
在網關概覽頁面左側導航欄,單擊路由管理。
在路由管理頁面,單擊目標路由右側操作列下的下線。
在確認對話框,單擊確定。
驗證路由下線是否成功。
在谷歌瀏覽器地址欄,輸入http://{入口網關的IP地址}/productpage。
在Bookinfo頁面右上角,單擊Sign in。
在Please sign in輸入任意賬號和密碼,單擊Sign in。
可以看到頁面顯示找不到網頁,說明目標路由策略失效,路由下線成功。
您可以通過以下方式上線路由策略,使路由策略中重新生效:
在路由管理頁面,單擊目標路由右側操作列下的上線,然后在確認對話框,單擊確定。