導讀:在實際應用中,通過 APIGateway(即 API 網(wǎng)關),可以為內(nèi)部服務提供保護、提供統(tǒng)一的鑒權管理、限流、監(jiān)控等能力,開發(fā)人員只需要關注內(nèi)部服務的業(yè)務邏輯即可。作者元毅在本文中將會為大家介紹:如何通過阿里云 API 網(wǎng)關以及內(nèi)網(wǎng) SLB,將 Knative 服務對外發(fā)布,以打造生產(chǎn)級別的 Knative 服務。
成都創(chuàng)新互聯(lián)主要從事網(wǎng)站建設、成都網(wǎng)站設計、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務峨山縣,10余年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18980820575
阿里云 API 網(wǎng)關為您提供完整的 API 托管服務,輔助用戶將能力、服務、數(shù)據(jù)以 API 的形式開放給合作伙伴,也可以發(fā)布到 API 市場供更多的開發(fā)者采購使用。
提供防重放、請求加密、身份認證、權限管理、流量控制等多重手段保證 API 安全,降低 API 開放風險
提供 API 定義、測試、發(fā)布、下線等全生命周期管理,并生成 SDK、API 說明文檔,提升 API 管理、迭代的效率
提供便捷的監(jiān)控、報警、分析、API 市場等運維、運營工具,降低 API 運營、維護成本
創(chuàng)建內(nèi)網(wǎng) SLB,綁定 Istio 網(wǎng)關應用??梢灾苯油ㄟ^下面的 yaml 創(chuàng)建內(nèi)網(wǎng) 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
創(chuàng)建完成之后,可以在登錄?阿里云容器服務控制臺,進入 【路由和工作負載】菜單,選擇??istio-system
?命名空間,可以查看到所創(chuàng)建的內(nèi)網(wǎng) SLB 信息:
cdn.com/78bff1a3cc99c8b6c4599b956e29065ba82138de.png">
此處內(nèi)網(wǎng) SLB 地址為:192.168.0.23
登錄阿里云容器服務控制臺,?創(chuàng)建 Knative 服務。?
這里我們創(chuàng)建 helloworld 服務,如圖所示:
驗證一下服務是否可以訪問:
[root@iZbp1c1wa320d487jdm78aZ?~]#?curl?-H?"Host:helloworld.default.example.com"?http://192.168.0.23Hello?World!
接下來進入重頭戲,如何配置 API 網(wǎng)關與 Knative Service 進行訪問。?
由于 API 需要歸屬分組,我們首先創(chuàng)建分組。登錄?阿里云 API 網(wǎng)關控制臺,開放 API-> 分組管理:
點擊【創(chuàng)建分組】,選擇共享實例(VPC)。
創(chuàng)建完成之后,我們需要在分組詳情中開啟公網(wǎng)域名,以進行公網(wǎng)服務訪問:可以通過??1
?開啟公網(wǎng)二級域名進行測試,或者通過??2
?設置獨立域名。
這里我們開啟公網(wǎng)二級域名進行測試訪問,開啟后如圖所示:
由于我們是訪問 K8s VPC 內(nèi)的服務,需要創(chuàng)建 VPC 授權。選擇開放 API->VPC 授權:
點擊【創(chuàng)建授權】,設置 VPC Id 以及內(nèi)網(wǎng) SLB 實例 Id。這里創(chuàng)建??knative-test
?VPC 授權。?
創(chuàng)建應用用于?阿里云 APP
?身份認證。該認證要求請求者調用該 API 時,需通過對 APP 的身份認證。這里我們創(chuàng)建??knative
?應用。
登錄阿里云 API 網(wǎng)關控制臺,開放 API->API 列表,選擇【創(chuàng)建 API】。關于創(chuàng)建 API,詳細可參考:?創(chuàng)建 API。
接下來我們輸入【基本信息】。選擇安全認證:阿里云 APP;AppCode 認證可以選擇:允許 AppCode 認證(Header & Query)。具體 AppCode 認證方式可以參考:?使用簡單認證(AppCode)方式調用 API。
點擊下一步,定義 API 請求。協(xié)議可以選擇 HTTP 和 HTTPS, 請求 Path 可設置??/
。
點擊下一步,定義 API 后端服務。后端服務類型我們設置為 VPC,設置 VPC 授權名稱等。
設置?常量參數(shù)
,其中后端參數(shù)名稱:Host,參數(shù)值:helloworld.default.example.com,參數(shù)位置:Header。
點擊下一步,完成創(chuàng)建。
創(chuàng)建完成之后,可直接進行發(fā)布。
選擇??線上
,點擊【發(fā)布】。
發(fā)布完成之后,我們可以在【API 列表】中看到當前 API:線上 (運行中)。
在調用 API 測試之前,我們需要對該 API 進行應用授權,進入 API 詳情,選擇【授權信息】。
點擊【添加授權】,這里我們選擇上面創(chuàng)建的??knative
?應用進行授權。
接下來我們進行驗證 API,點擊在 API 詳情中,選擇【調試 API】,點擊【發(fā)送請求】,可以看到測試結果信息:
至此,我們通過阿里云 API 網(wǎng)關將 Knative 服務發(fā)布完成。?
鄭州不孕不育醫(yī)院:http://jbk.39.net/yiyuanzaixian/zztjyy/
通過上面的介紹,相信大家對如何通過阿里云 API 網(wǎng)關將 Knative 服務對外發(fā)布有了初步的了解。在實際生產(chǎn)中我們對 Serverless 服務的訪問安全、流控、監(jiān)控運維等要求是不必可少的,而通過阿里云 API 網(wǎng)關恰好可以對 Knative 服務提供保駕護航能力。通過阿里云 API 網(wǎng)關可以對 API 服務配置:
流量控制
訪問鑒權
日志監(jiān)控
API 全生命周期管理 : 測試、發(fā)布、下線
正是通過這些能力,阿里云 API 網(wǎng)關為 Knative 提供生產(chǎn)級別的服務。歡迎有興趣的同學一起交流。