
作者 | 元毅 阿裡雲智能事業群進階開發工程師
目前 Knative 中預設支援是基于域名的轉發,可以通過域名模闆配置字尾,但目前對于使用者來說并不能指定全域名設定。另外一個問題就是基于 Path 和 Header 轉發的能力,很多情況下我們使用相同的域名,不同服務通過通路路徑進行區分。
針對上述這兩個問題,我們在阿裡雲 Knative 中提供了這樣的能力,使用者可以通過控制台配置自定義域名,并基于 Path 和 Header 進行路由轉發設定。如圖所示:
自定義域名
登入阿裡雲容器服務控制台,進入【Knative】-【元件管理】,點選 Serving 元件【詳情】。
進入詳情之後,選擇域名配置,添加自定義域名:【test.serverless.kuberun.com】。點選 【确定】進行儲存。
配置路由轉發
進入【Knative】-【服務管理】控制台,選擇對應的服務。這裡我們對 Login-Service 服務 以及 Search-Service 服務分别設定不同的 Path 進行通路。
Login-Service 服務路由轉發配置
選擇 Login-Service 服務, 選擇【路由轉發】頁簽,點選【配置】, 選擇【test.serverless.kuberun.com】域名,配置路徑:/login。點選【确定】進行儲存。
接下來繼續配置 Search-Service 服務路由規則。
Search-Service 服務路由轉發配置
選擇 Search-Service 服務, 選擇【路由轉發】頁簽,點選【配置】, 選擇【test.serverless.kuberun.com】域名,配置路徑:/search。點選【确定】進行儲存。
服務通路
以上路由轉發配置完成之後,我們開始測試一下服務通路:
在浏覽器中輸入:
http://test.serverless.kuberun.com/login,可以看到輸出:Hello Login Service!
,可以看到輸出:Hello Search Service!
基于 Path + Header 進行路由轉發
選擇 Login-Service 服務, 選擇【路由轉發】頁簽,點選 配置,這裡我們加上 Header 配置:foo=bar。點選【确定】進行儲存。
通路
,發現服務 404 不可通路。
說明基于 Header 是生效的,下面我們在通路請求中通過 ModHeader 插件配置上Header:foo=bar.
配置完成之後,我們再一次通路服務:
。
服務通路 OK。這樣我們就完成了基于 Path + Header 路由轉發配置。
小結
通過阿裡雲 Knative 控制台讓你更輕松、快捷的實作自定義域名及路由規則,以打造生産可用的服務通路。歡迎對 Knative 感興趣的一起交流。
歡迎加入 Knative 交流群
“ 阿裡巴巴雲原生微信公衆号(ID:Alicloudnative)關注微服務、Serverless、容器、Service Mesh等技術領域、聚焦雲原生流行技術趨勢、雲原生大規模的落地實踐,做最懂雲原生開發者的技術公衆号。”