基于APIGateway打造生產(chǎn)級別的Knative服務(wù)-創(chuàng)新互聯(lián)

基于 APIGateway 打造生產(chǎn)級別的 Knative 服務(wù)作者?|?阿里云智能事業(yè)群高級開發(fā)工程師??元毅

成都創(chuàng)新互聯(lián)公司自2013年起,先為彭澤等服務(wù)建站,彭澤等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為彭澤企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

導(dǎo)讀:在實際應(yīng)用中,通過 APIGateway(即 API 網(wǎng)關(guān)),可以為內(nèi)部服務(wù)提供保護、提供統(tǒng)一的鑒權(quán)管理、限流、監(jiān)控等能力,開發(fā)人員只需要關(guān)注內(nèi)部服務(wù)的業(yè)務(wù)邏輯即可。作者元毅在本文中將會為大家介紹:如何通過阿里云 API 網(wǎng)關(guān)以及內(nèi)網(wǎng) SLB,將 Knative 服務(wù)對外發(fā)布,以打造生產(chǎn)級別的 Knative 服務(wù)。

關(guān)于阿里云 API 網(wǎng)關(guān)

阿里云 API 網(wǎng)關(guān)為您提供完整的 API 托管服務(wù),輔助用戶將能力、服務(wù)、數(shù)據(jù)以 API 的形式開放給合作伙伴,也可以發(fā)布到 API 市場供更多的開發(fā)者采購使用。

  • 提供防破壞、防重放、請求加密、身份認證、權(quán)限管理、流量控制等多重手段保證 API 安全,降低 API 開放風(fēng)險
  • 提供 API 定義、測試、發(fā)布、下線等全生命周期管理,并生成 SDK、API 說明文檔,提升 API 管理、迭代的效率
  • 提供便捷的監(jiān)控、報警、分析、API 市場等運維、運營工具,降低 API 運營、維護成本

基于阿里云 API 網(wǎng)關(guān)發(fā)布服務(wù)

綁定 Istio 網(wǎng)關(guān)到內(nèi)網(wǎng) SLB

創(chuàng)建內(nèi)網(wǎng) SLB,綁定 Istio 網(wǎng)關(guān)應(yī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)建完成之后,可以在登錄阿里云容器服務(wù)控制臺,進入 【路由和工作負載】菜單,選擇 istio-system 命名空間,可以查看到所創(chuàng)建的內(nèi)網(wǎng) SLB 信息:

基于 APIGateway 打造生產(chǎn)級別的 Knative 服務(wù)

此處內(nèi)網(wǎng) SLB 地址為:192.168.0.23

創(chuàng)建 Knative 服務(wù)

登錄阿里云容器服務(wù)控制臺,創(chuàng)建 Knative 服務(wù)。
這里我們創(chuàng)建 helloworld 服務(wù),如圖所示:

基于 APIGateway 打造生產(chǎn)級別的 Knative 服務(wù)

驗證一下服務(wù)是否可以訪問:

[root@iZbp1c1wa320d487jdm78aZ ~]# curl -H "Host:helloworld.default.example.com" http://192.168.0.23
Hello World!

配置 API 網(wǎng)關(guān)

接下來進入重頭戲,如何配置 API 網(wǎng)關(guān)與 Knative Service 進行訪問。

創(chuàng)建分組

由于 API 需要歸屬分組,我們首先創(chuàng)建分組。登錄阿里云 API 網(wǎng)關(guān)控制臺,開放 API-> 分組管理:

基于 APIGateway 打造生產(chǎn)級別的 Knative 服務(wù)

點擊【創(chuàng)建分組】,選擇共享實例(VPC)。

基于 APIGateway 打造生產(chǎn)級別的 Knative 服務(wù)

創(chuàng)建完成之后,我們需要在分組詳情中開啟公網(wǎng)域名,以進行公網(wǎng)服務(wù)訪問:可以通過 1 開啟公網(wǎng)二級域名進行測試,或者通過 2 設(shè)置獨立域名。

基于 APIGateway 打造生產(chǎn)級別的 Knative 服務(wù)
這里我們開啟公網(wǎng)二級域名進行測試訪問,開啟后如圖所示:

基于 APIGateway 打造生產(chǎn)級別的 Knative 服務(wù)

創(chuàng)建 VPC 授權(quán)

由于我們是訪問 K8s VPC 內(nèi)的服務(wù),需要創(chuàng)建 VPC 授權(quán)。選擇開放 API->VPC 授權(quán):

基于 APIGateway 打造生產(chǎn)級別的 Knative 服務(wù)

點擊【創(chuàng)建授權(quán)】,設(shè)置 VPC Id 以及內(nèi)網(wǎng) SLB 實例 Id。這里創(chuàng)建 knative-test VPC 授權(quán)。基于 APIGateway 打造生產(chǎn)級別的 Knative 服務(wù)

創(chuàng)建應(yīng)用

創(chuàng)建應(yīng)用用于阿里云 APP 身份認證。該認證要求請求者調(diào)用該 API 時,需通過對 APP 的身份認證。這里我們創(chuàng)建 knative 應(yīng)用。

基于 APIGateway 打造生產(chǎn)級別的 Knative 服務(wù)

創(chuàng)建 API

登錄阿里云 API 網(wǎng)關(guān)控制臺,開放 API->API 列表,選擇【創(chuàng)建 API】。關(guān)于創(chuàng)建 API,詳細可參考:創(chuàng)建 API。

基于 APIGateway 打造生產(chǎn)級別的 Knative 服務(wù)

接下來我們輸入【基本信息】。選擇安全認證:阿里云 APP;AppCode 認證可以選擇:允許 AppCode 認證(Header & Query)。具體 AppCode 認證方式可以參考:使用簡單認證(AppCode)方式調(diào)用 API。

基于 APIGateway 打造生產(chǎn)級別的 Knative 服務(wù)

點擊下一步,定義 API 請求。協(xié)議可以選擇 HTTP 和 HTTPS, 請求 Path 可設(shè)置?/。

基于 APIGateway 打造生產(chǎn)級別的 Knative 服務(wù)

點擊下一步,定義 API 后端服務(wù)。后端服務(wù)類型我們設(shè)置為 VPC,設(shè)置 VPC 授權(quán)名稱等。

基于 APIGateway 打造生產(chǎn)級別的 Knative 服務(wù)

設(shè)置常量參數(shù),其中后端參數(shù)名稱:Host,參數(shù)值:helloworld.default.example.com,參數(shù)位置:Header。

基于 APIGateway 打造生產(chǎn)級別的 Knative 服務(wù)

點擊下一步,完成創(chuàng)建。

基于 APIGateway 打造生產(chǎn)級別的 Knative 服務(wù)

發(fā)布 API

創(chuàng)建完成之后,可直接進行發(fā)布。

基于 APIGateway 打造生產(chǎn)級別的 Knative 服務(wù)

選擇 線上,點擊【發(fā)布】。

基于 APIGateway 打造生產(chǎn)級別的 Knative 服務(wù)

驗證 API

發(fā)布完成之后,我們可以在【API 列表】中看到當(dāng)前 API:線上 (運行中)。

基于 APIGateway 打造生產(chǎn)級別的 Knative 服務(wù)

在調(diào)用 API 測試之前,我們需要對該 API 進行應(yīng)用授權(quán),進入 API 詳情,選擇【授權(quán)信息】。

基于 APIGateway 打造生產(chǎn)級別的 Knative 服務(wù)

點擊【添加授權(quán)】,這里我們選擇上面創(chuàng)建的?knative?應(yīng)用進行授權(quán)。

基于 APIGateway 打造生產(chǎn)級別的 Knative 服務(wù)

接下來我們進行驗證 API,點擊在 API 詳情中,選擇【調(diào)試 API】,點擊【發(fā)送請求】,可以看到測試結(jié)果信息:

基于 APIGateway 打造生產(chǎn)級別的 Knative 服務(wù)

至此,我們通過阿里云 API 網(wǎng)關(guān)將 Knative 服務(wù)發(fā)布完成。

小結(jié)

通過上面的介紹,相信大家對如何通過阿里云 API 網(wǎng)關(guān)將 Knative 服務(wù)對外發(fā)布有了初步的了解。在實際生產(chǎn)中我們對 Serverless 服務(wù)的訪問安全、流控、監(jiān)控運維等要求是不必可少的,而通過阿里云 API 網(wǎng)關(guān)恰好可以對 Knative 服務(wù)提供保駕護航能力。通過阿里云 API 網(wǎng)關(guān)可以對 API 服務(wù)配置:

  • 流量控制
  • 訪問鑒權(quán)
  • 日志監(jiān)控
  • API 全生命周期管理 : 測試、發(fā)布、下線

正是通過這些能力,阿里云 API 網(wǎng)關(guān)為 Knative 提供生產(chǎn)級別的服務(wù)。歡迎有興趣的同學(xué)一起交流。

歡迎加入 Knative 交流群

基于 APIGateway 打造生產(chǎn)級別的 Knative 服務(wù)

作者簡介:元毅,阿里云容器平臺高級開發(fā)工程師,負責(zé)阿里云容器平臺 Knative 相關(guān)工作。
了解 ACK 容器服務(wù),請查看: https://www.aliyun.com/product/kubernetes

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)站名稱:基于APIGateway打造生產(chǎn)級別的Knative服務(wù)-創(chuàng)新互聯(lián)
當(dāng)前URL:http://muchs.cn/article14/cdgsge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計公司、品牌網(wǎng)站建設(shè)、網(wǎng)站維護、微信小程序定制開發(fā)、網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)