概述
云原生網關支持將請求轉發的預定義的目標服務,本章節介紹云原生網關中的服務生命周期管理。
云原生網關中服務相關概念如下:
| 概念 | 說明 |
|---|---|
| 服務 | 網關轉發請求的目標,可以通過配置路由引用相應的服務,將請求轉發到指定的目標。 |
| 容器服務 | 從云容器引擎中發現的服務。 |
| 注冊中心服務 | 從注冊配置中心發現的服務。 |
| 固定地址服務 | 固定配置的IP+端口服務。 |
| Dubbo服務 | 添加服務時,服務scheme選擇DUBBO。 |
| 服務scheme | 請求后端服務的協議,當前支持HTTP、HTTPS、GRPC、GRPCS、DUBBO,默認為HTTP。 |
| 服務版本 | 云原生網關支持基于容器和注冊中心服務中的元數據(容器服務中的POD標簽或者注冊中心服務的元數據)對服務進行分組,并定義為不同版本,即為服務版本概念。 |
創建服務
云原生網關支持創建容器服務、注冊中心服務和固定地址服務,本章節介紹每種服務創建操作流程。
創建容器服務
前置條件
- 已開通云原生網關實例和同VPC下的云容器引擎實例,已添加云容器引擎作為云原生網關的服務來源
- 服務已部署到云容器引擎并配置相關Service暴露服務
操作流程
- 進入微服務引擎MSE控制臺
- 在頂部菜單欄選擇資源池
- 單擊左側導航欄云原生網關 -> 網關列表
- 您可以在網關列表頁單擊需要查看的網關實例ID或者 實例名稱 ,也可以單擊操作列中的管理按鈕
- 單擊左側導航欄 服務列表
- 單擊左上角按鈕 創建服務
- 在彈出的頁面中選擇容器服務來源,選擇要添加的服務所在的命名空間
- 在服務列表中選擇要添加的服務,根據需求做不同的配置

容器服務配置說明
| 配置 | 說明 |
|---|---|
| 命名空間 | 后端服務部署在云容器引擎中的命名空間。 |
| servicePort | 對應云容器引擎Service中定義的服務端口,每個端口可以定義為一個獨立的云原生網關服務。 |
| websocket支持 | websocket開關,打開之后支持websocket流量代理到后端。 |
| 協議 | 后端服務的協議,支持HTTP、HTTPS、GRPC、GRPCS、DUBBO,默認為HTTP。 |
| mTLS | 是否打開后端服務雙向TLS認證(后端服務對網關證書認證)。 |
| 證書文件 | 后端服務開啟雙向TLS認證后,云原生網關提供的證書文件。 |
| 私鑰文件 | 后端服務開啟雙向TLS認證后,云原生網關提供的私鑰文件。 |
創建注冊中心服務
前置條件
- 已開通云原生網關實例和同VPC下的注冊配置中心實例(Nacos引擎),已添加注冊配置中心實例作為云原生網關的服務來源
- 后端服務已部署并注冊到注冊配置中心
操作流程
- 進入微服務引擎MSE控制臺
- 在頂部菜單欄選擇資源池
- 單擊左側導航欄云原生網關 -> 網關列表
- 您可以在網關列表頁單擊需要查看的網關實例ID或者 實例名稱 ,也可以單擊操作列中的管理按鈕
- 單擊左側導航欄 服務列表
- 單擊左上角按鈕 創建服務
- 在彈出的頁面中選擇MSE Nacos服務來源,選擇要添加的服務所在的命名空間
- 在服務列表中選擇要添加的服務,根據需求做不同的配置

注冊中心服務配置說明
| 配置 | 說明 |
|---|---|
| 命名空間 | 后端服務注冊到注冊配置中心的命名空間。 |
| websocket支持 | websocket開關,打開之后支持websocket流量代理到后端。 |
| 協議 | 后端服務的協議,支持HTTP、HTTPS、GRPC、GRPCS、DUBBO,默認為HTTP。 |
| mTLS | 是否打開后端服務雙向TLS認證(后端服務對網關證書認證)。 |
| 證書文件 | 后端服務開啟雙向TLS認證后,云原生網關提供的證書文件。 |
| 私鑰文件 | 后端服務開啟雙向TLS認證后,云原生網關提供的私鑰文件。 |
創建固定地址服務
前置條件
- 已開通云原生網關實例
操作流程
- 進入微服務引擎MSE控制臺
- 在頂部菜單欄選擇資源池
- 單擊左側導航欄云原生網關 -> 網關列表
- 您可以在網關列表頁單擊需要查看的網關實例ID或者 例名稱 ,也可以單擊操作列中的管理按鈕
- 單擊左側導航欄服務列表
- 單擊左上角按鈕創建服務
在彈出的頁面中選擇添加固定地址類型的服務,如下圖所示:

添加固定地址服務的配置參數包括:
| 參數 | 說明 |
|---|---|
| 服務名稱 | 用于唯一標識一個后端服務。 |
| 服務地址 | 1. 支持配置服務節點的地址、端口、權重和優先級。 2. 優先訪問高優先級節點,只有在高優先級的節點不可用或者嘗試過,才會訪問一個低優先級的節點; 3. 只有在優先級相同時,權重才會生效; 4. 優先級默認值為0,可以取負數表示備份節點,表示只有其他節點均不可用時,才會啟用備份節點; 5. 此處節點權重采用比例形式,表示不同節點之間的流量比例。 |
| 請求協議 | 后端服務的協議,支持HTTP、HTTPS、GRPC、GRPCS、DUBBO,默認為HTTP。 |
| mTLS | 是否打開后端服務雙向TLS認證(后端服務對網關證書認證)。 |
| 證書文件 | 后端服務開啟雙向TLS認證后,云原生網關提供的證書文件。 |
| 私鑰文件 | 后端服務開啟雙向TLS認證后,云原生網關提供的私鑰文件。 |
刪除服務
前提條件
沒有路由在引用要刪除的服務(先刪除引用當前服務的路由)
操作流程
- 進入微服務引擎MSE控制臺
- 在頂部菜單欄選擇資源池
- 單擊左側導航欄云原生網關 -> 網關列表
- 您可以在網關列表頁單擊需要查看的網關實例ID或者實例名稱 ,也可以單擊操作列中的管理按鈕
- 單擊左側導航欄 服務列表
- 在右側操作欄點刪除按鈕
編輯服務
云原生網關支持對已添加的服務進行編輯,本章節介紹服務編輯功能。
操作流程
- 進入微服務引擎MSE控制臺
- 在頂部菜單欄選擇資源池
- 單擊左側導航欄云原生網關 -> 網關列表
- 您可以在網關列表頁單擊需要查看的網關實例ID或者 實例名稱 ,也可以單擊操作列中的管理按鈕
- 單擊左側導航欄 服務列表
- 在右側操作欄點編輯按鈕
當前允許編輯的服務選項包括:websocket選項、請求協議、mTLS配置
服務策略配置
云原生網關支持豐富的服務策略配置,點擊服務列表項操作欄的策略配置按鈕或者服務名稱進入服務詳情頁面,可以實現后端服務級別的策略配置,包括負載均衡、超時重試、健康檢查、后端訪問簽名、服務版本等,如下圖:


策略配置項和支持的服務類型如下表:
| 配置項 | 說明 | 支持的服務類型 |
|---|---|---|
| 負載均衡策略 | 后端多實例的負載均衡策略,當前支持: 1,輪詢(Round Robin) 2,一致性哈希(CHash) 3,指數加權移動平均法(EWMA) 4,最小連接數(Least Conn) |
容器/注冊中心/固定地址 |
| 超時 | 當前支持配置連接超時、發送超時、接收超時,默認都是6s。 | 容器/注冊中心/固定地址 |
| 重試 | 重試次數,默認為0,表示不重試。 重試超時時間:原請求和重試的總耗時超過該時間則不再繼續重試。 |
容器/注冊中心/固定地址 |
| 健康檢查 | 后端服務監控檢查配置,包括主動健康檢查和被動健康檢查。 | 容器/注冊中心/固定地址 |
| 后端訪問簽名 | 請求后端時基于HMAC算法計算簽名,用于后端對網關的回源請求進行鑒權。 | 容器/注冊中心/固定地址 |
| 服務版本 | 針對容器和Nacos服務,基于標簽定義服務的不同版本,可以在路由配置中實現多版本的藍綠和金絲雀發布能力。 | 容器/注冊中心 |
健康檢查配置
云原生網關對后端服務的健康檢查分為主動健康檢查和被動健康檢查。
主動健康檢查通過預設的探針,主動探測上游節點的存活性,目前支持 HTTP、HTTPS、TCP 三種探針類型。當發往某個健康節點的若干個連續探測請求都失敗時,則該節點將被標記為不健康,不健康的節點將會被網關的負載均衡器忽略,無法收到請求;若發往某個不健康的節點的連續若干個探測請求都成功,則該節點將被重新標記為健康,進而可以被代理。
主動健康檢查配置界面如下圖:

主動健康檢查支持的配置項有:
| 配置項 | 說明 |
|---|---|
| 探測類型 | 當前支持TCP、HTTP、HTTPS探測。 |
| 超時時間 | 探測請求超時時間。 |
| 并行數量 | 并發主動探測的最大數量。 |
| 端口 | 探測的服務端口。 |
| 請求路徑 | 探測請求的路徑,僅對HTTP和HTTPS探測有效。 |
| 請求頭部 | 探測時指定請求頭部,僅對HTTP和HTTPS探測有效。 |
| 健康狀態定義 | 對于不健康節點的探測配置,用于判斷節點是否恢復健康。 1,探測時間間隔(秒) 2,成功次數:主動探測成功達到次次數時認為節點是健康的? 3,狀態碼:對于HTTP和HTTPS探測,定義了哪些狀態碼是健康的,如2XX,3XX |
| 不健康狀態定義 | 對于健康節點的探測配置,用于判斷節點是否監控。 1,探測時間間隔(秒) 2,超時次數:超時次數大于或者等于該配置時認為節點不健康?? 3,狀態碼:定義了哪些狀態碼是異常的,如4XX,5XX? ? 4,HTTP失敗次數:HTTP失敗次數大于等于該值時認為節點不健康 5,TCP失敗次數:TCP失敗大于等于該值時認為節點不健康 |
被動健康檢查是指,通過網關接收到的上游節點的響應狀態來判斷對應的上游節點是否健康。相對于主動健康檢查,被動健康檢查的方式無需發起額外的探測請求,缺點是無法提前感知節點狀態,需要有一定量的失敗請求才能觸發故障節點的剔除。若發向某個健康節點的若干個連續請求都被判定為失敗,則該節點將被標記為不健康。
被動健康檢查的配置如下圖:

被動健康檢查的配置說明:
| 配置 | 說明 |
|---|---|
| 類型 | 當前支持TCP、HTTP、HTTPS三種類型。 |
| 健康狀態定義 | 狀態碼:成功對應的狀態碼,主要是2XX、3XX等。 成功次數:成功的次數超過該值則認為節點健康。 |
| 不健康狀態定義 | 超時次數:超時次數超過該值則認為節點不健康。 TCP失敗次數:TCP失敗超過該值則認為節點不健康。 HTTP失敗次數:HTTP失敗超過該值則認為節點不健康。 狀態碼:失敗對應的狀態碼,包括4XX、5XX等。 |
后端訪問簽名
使用云原生網關的場景下,后端服務不直接對外暴露服務,而是通過云原生網關將請求轉發到后端。從安全角度,配置認證鑒權策略限制只允許云原生網關等作為請求方訪問自己。針對這種場景,云原生網關可以配置特定的簽名策略,用于后端服務的認證鑒權。當前云原生網關添加服務時可以配置HMAC算法簽名策略,如下圖所示:

配置選項說明如下:
| 選項 | 說明 |
|---|---|
| 認證算法 | 當前僅支持HMAC。 |
| Access Key | 后端服務校驗簽名使用的HMAC access key。 |
| Secret Key | 后端服務校驗簽名使用的HMAC secret key。 |
| 加密算法 | HMAC加密算法,支持hmac-sha1, hmac-sha256, hmac-sha512。 |
| 加密Headers列表 | 用于計算簽名的header列表。 |
| URL參數編碼 | URL參數是否經過編碼之后再計算簽名,默認是。 |
服務版本管理
服務的版本一般是服務迭代過程中的概念,在云原生網關的場景下,服務版本引申為服務的標簽概念,一個服務可能有多個版本(標簽);基于服務的版本(標簽)可以實現如標簽路由、灰度發布、高可用部署等能力;如對于一個服務存在多個版本的場景,基于不同版本的實例上所攜帶的標簽不同,將服務定義為多個不同的版本;根據請求的特征匹配,路由到不同版本的服務中可以實現標簽路由;將服務的流量在多個版本之間分配,可以實現金絲雀、藍綠等灰度功能;根據服務的部署標簽定義的版本則可以應用在服務的高可用部署上。
對于容器或者Nacos來源的服務,云原生網關支持根據服務的元數據定義不同的版本,如下圖對于容器服務,可以根據pod的標簽定義不同的服務版本:

配置說明如下:
| 配置 | 說明 |
|---|---|
| 版本名稱 | 自定義的版本名稱。 |
| 標簽名 | 版本對應的標簽名,可選值來自當前服務的元數據。 |
| 標簽值 | 版本標簽名對應的標簽值,可選值來自當前服務的元數據。 |
| 實例數/比例 | 所選的標簽選擇到的實例數/相對于整體實例數的比例。 |
添加完服務版本則可以看到如下:
