泳道組及泳道管理
更新時間 2024-09-09 19:38:16
最近更新時間: 2024-09-09 19:38:16
分享文章
本章節介紹泳道組及泳道管理功能
創建泳道組
從服務網格控制臺選擇流量管理中心-> 全鏈路灰度 -> 創建泳道組,如下圖。

選項說明如下:
| 選項 | 說明 |
|---|---|
| 泳道組名稱 | 字母+數字,最大長度32。 |
| traceid頭部 | 字母+數字+下劃線+橫線,以字母開頭,最大長度32,可選值如x-b3-traceid(根據業務接入的鏈路追蹤實現選擇)。 |
| 入口網關集群 | 用于實現全鏈路灰度的入口網關所在的集群。 |
| 入口網關命名空間 | 入口網關所在的命名空間。 |
| 入口網關服務 | 入口網關服務名。 |
| 泳道服務集群 | 要添加到泳道組內的服務所在的集群。 |
| 泳道服務命名空間 | 要添加到泳道組內服務所在的命名空間。 |
| 可選服務列表 | 要添加到泳道組內的服務列表。 |
| 已選服務列表 | 已經選擇的泳道組服務列表。 |
| 是否關聯網關 | 泳道組服務是否關聯網關(只有入口服務需要關聯網關)。 |
創建泳道
創建完泳道組,點擊泳道名稱進入泳道詳情頁,如下圖展示了泳道組基本信息。

選擇創建泳道按鈕創建新的泳道:

選項說明如下:
| 選項 | 說明 |
|---|---|
| 泳道名稱 | 對應泳道內的服務版本(取值需要和pod的csm-traffic-tag標簽一致),字母+數字,最大長度32。 |
| 泳道服務 | 該泳道內包含的服務,可以是泳道組內服務的子集,不能是空。 |
刪除泳道
在泳道組詳情頁面,點擊泳道列表右邊的刪除操作即可。

刪除泳道組
進入流量管理中心,選擇全鏈路灰度菜單,進入泳道組列表頁,選擇右側的刪除操作即可。

泳道、泳道組相關資源說明
在創建泳道組后,后臺會創建一些資源(占位符說明ns:命名空間,group:泳道組名稱,svc:服務名稱,swimlane:泳道名稱):
| 資源 | 命名空間 | 命名 | 說明 |
|---|---|---|---|
| 網關流量標簽 | 網關所在的命名空間 | trafficlabel-?ns-svc-$group | 在ingress網關處實現流量打標邏輯。 |
| sidecar流量標簽 | 服務所在的命名空間 | trafficlabel-?ns-svc-$group | 在sidecar處實現流量打標和流量標簽透傳。 |
| 流量標簽名稱 | - | csm-traffic-label-$group | - |
| 網關VirtualService | 網關所在的命名空間 | ingress-swim-group-vs-?svc-ns | 在網關處實現流量路由。 |
| sidecar VirtualService | 服務所在的命名空間 | sidecar-swim-group-vs-?svc-ns | 在sidecar實現流量路由。 |
| 服務DestinationRule | 服務所在的命名空間 | sidecar-swim-group-dr-?ns-svc | 服務版本分組定義。 |
| DestinationRule subset | 服務所在的命名空間 | $swimlane | 服務分組。 |
| ingress默認路由 | 網關所在的命名空間 | csm-tl-ingress-http-route-?group-svc | ingress兜底路由。 |
| sidecar默認路由 | 服務所在的命名空間 | csm-tl-sidecar-http-route-?group-svc | sidecar兜底路由。 |
| ingress版本路由 | 網關所在的命名空間 | csm-tl-ingress-http-route-?group-svc-$swimlane | ingress內對后端服務多版本的路由規則。 |
| sidecar版本路由 | 服務所在的命名空間 | csm-tl-sidecar-http-route-?group-svc-$swimlane | sidecar內對后端服務多版本的路由規則。 |
資源復用說明
- 針對網格內的服務,預期每個服務在其所在的命名空間有一個sidecar VirtualService資源,如果已經您已經在服務所在的命名空間創建了一個VirtualService,gateways為空或者包含mesh,全鏈路灰度將嘗試復用您創建的VirtualService資源。
- 如果您已經在服務所在的命名空間創建了DestinationRule資源,這里將嘗試復用,需要保證subset不沖突。
- 如果您在網關所在的命名空間創建了相關服務的VirtualService資源,且gateways包含目標Gateway,這里將嘗試復用。
其他注意事項
- 全鏈路灰度創建的DestinationRule資源默認使用csm-traffic-tag標簽進行服務分組。
- 全鏈路灰度創建的流量標簽規則默認使用x-csm-traffic-tag頭部對請求進行路由控制,比如請求帶上了x-csm-traffic-tag: test頭部,預期會訪問微服務內帶了csm-traffic-tag標簽值為test的版本。
- Service需要帶上withServiceMesh: true標簽。