您好,登錄后才能下訂單哦!
導讀:在實際應用中,通過 APIGateway(即 API 網關),可以為內部服務提供保護、提供統一的鑒權管理、限流、監控等能力,開發人員只需要關注內部服務的業務邏輯即可。作者元毅在本文中將會為大家介紹:如何通過阿里云 API 網關以及內網 SLB,將 Knative 服務對外發布,以打造生產級別的 Knative 服務。
阿里云 API 網關為您提供完整的 API 托管服務,輔助用戶將能力、服務、數據以 API 的形式開放給合作伙伴,也可以發布到 API 市場供更多的開發者采購使用。
提供防重放、請求加密、身份認證、權限管理、流量控制等多重手段保證 API 安全,降低 API 開放風險
提供 API 定義、測試、發布、下線等全生命周期管理,并生成 SDK、API 說明文檔,提升 API 管理、迭代的效率
提供便捷的監控、報警、分析、API 市場等運維、運營工具,降低 API 運營、維護成本
創建內網 SLB,綁定 Istio 網關應用。可以直接通過下面的 yaml 創建內網 SLB:
apiVersion:?v1 kind:?Service metadata: ??annotations: ????service.beta.kubernetes.io/alicloud-loadbalancer-address-type:?"intranet" ??labels: ????app:?istio-ingressgateway ????istio:?ingressgateway ??name:?istio-ingressgateway-intranet ??namespace:?istio-system spec: ??externalTrafficPolicy:?Cluster ??ports: ??-?name:?status-port ????port:?15020 ????protocol:?TCP ????targetPort:?15020 ??-?name:?http2 ????port:?80 ????protocol:?TCP ????targetPort:?80 ??-?name:?https ????port:?443 ????protocol:?TCP ????targetPort:?443 ??-?name:?tls ????port:?15443 ????protocol:?TCP ????targetPort:?15443 ??selector: ????app:?istio-ingressgateway ????istio:?ingressgateway ??sessionAffinity:?None??type:?LoadBalancer
創建完成之后,可以在登錄?阿里云容器服務控制臺,進入 【路由和工作負載】菜單,選擇??istio-system
?命名空間,可以查看到所創建的內網 SLB 信息:
cdn.com/78bff1a3cc99c8b6c4599b956e29065ba82138de.png">
此處內網 SLB 地址為:192.168.0.23
登錄阿里云容器服務控制臺,?創建 Knative 服務。?
這里我們創建 helloworld 服務,如圖所示:
驗證一下服務是否可以訪問:
[root@iZbp1c1wa320d487jdm78aZ?~]#?curl?-H?"Host:helloworld.default.example.com"?http://192.168.0.23Hello?World!
接下來進入重頭戲,如何配置 API 網關與 Knative Service 進行訪問。?
由于 API 需要歸屬分組,我們首先創建分組。登錄?阿里云 API 網關控制臺,開放 API-> 分組管理:
點擊【創建分組】,選擇共享實例(VPC)。
創建完成之后,我們需要在分組詳情中開啟公網域名,以進行公網服務訪問:可以通過??1
?開啟公網二級域名進行測試,或者通過??2
?設置獨立域名。
這里我們開啟公網二級域名進行測試訪問,開啟后如圖所示:
由于我們是訪問 K8s VPC 內的服務,需要創建 VPC 授權。選擇開放 API->VPC 授權:
點擊【創建授權】,設置 VPC Id 以及內網 SLB 實例 Id。這里創建??knative-test
?VPC 授權。?
創建應用用于?阿里云 APP
?身份認證。該認證要求請求者調用該 API 時,需通過對 APP 的身份認證。這里我們創建??knative
?應用。
登錄阿里云 API 網關控制臺,開放 API->API 列表,選擇【創建 API】。關于創建 API,詳細可參考:?創建 API。
接下來我們輸入【基本信息】。選擇安全認證:阿里云 APP;AppCode 認證可以選擇:允許 AppCode 認證(Header & Query)。具體 AppCode 認證方式可以參考:?使用簡單認證(AppCode)方式調用 API。
點擊下一步,定義 API 請求。協議可以選擇 HTTP 和 HTTPS, 請求 Path 可設置??/
。
點擊下一步,定義 API 后端服務。后端服務類型我們設置為 VPC,設置 VPC 授權名稱等。
設置?常量參數
,其中后端參數名稱:Host,參數值:helloworld.default.example.com,參數位置:Header。
點擊下一步,完成創建。
創建完成之后,可直接進行發布。
選擇??線上
,點擊【發布】。
發布完成之后,我們可以在【API 列表】中看到當前 API:線上 (運行中)。
在調用 API 測試之前,我們需要對該 API 進行應用授權,進入 API 詳情,選擇【授權信息】。
點擊【添加授權】,這里我們選擇上面創建的??knative
?應用進行授權。
接下來我們進行驗證 API,點擊在 API 詳情中,選擇【調試 API】,點擊【發送請求】,可以看到測試結果信息:
至此,我們通過阿里云 API 網關將 Knative 服務發布完成。?
鄭州不孕不育醫院:http://jbk.39.net/yiyuanzaixian/zztjyy/
通過上面的介紹,相信大家對如何通過阿里云 API 網關將 Knative 服務對外發布有了初步的了解。在實際生產中我們對 Serverless 服務的訪問安全、流控、監控運維等要求是不必可少的,而通過阿里云 API 網關恰好可以對 Knative 服務提供保駕護航能力。通過阿里云 API 網關可以對 API 服務配置:
流量控制
訪問鑒權
日志監控
API 全生命周期管理 : 測試、發布、下線
正是通過這些能力,阿里云 API 網關為 Knative 提供生產級別的服務。歡迎有興趣的同學一起交流。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。