文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

基于 APIGateway 打造生产级别的 Knative

2024-04-02 19:55

关注

导读:在实际应用中,通过 APIGateway(即 API 网关),可以为内部服务提供保护、提供统一的鉴权管理、限流、监控等能力,开发人员只需要关注内部服务的业务逻辑即可。作者元毅在本文中将会为大家介绍:如何通过阿里云 API 网关以及内网 SLB,将 Knative 服务对外发布,以打造生产级别的 Knative 服务。

关于阿里云 API 网关

阿里云 API 网关为您提供完整的 API 托管服务,辅助用户将能力、服务、数据以 API 的形式开放给合作伙伴,也可以发布到 API 市场供更多的开发者采购使用。

基于阿里云 API 网关发布服务

绑定 Istio 网关到内网 SLB

创建内网 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 信息:

此处内网 SLB 地址为:192.168.0.23

创建 Knative 服务

登录阿里云容器服务控制台, 创建 Knative 服务。 
这里我们创建 helloworld 服务,如图所示:

基于 APIGateway 打造生产级别的 Knative

验证一下服务是否可以访问:

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

配置 API 网关

接下来进入重头戏,如何配置 API 网关与 Knative Service 进行访问。 

创建分组

由于 API 需要归属分组,我们首先创建分组。登录 阿里云 API 网关控制台,开放 API-> 分组管理:

基于 APIGateway 打造生产级别的 Knative

点击【创建分组】,选择共享实例(VPC)。

基于 APIGateway 打造生产级别的 Knative

创建完成之后,我们需要在分组详情中开启公网域名,以进行公网服务访问:可以通过  1 开启公网二级域名进行测试,或者通过  2 设置独立域名。

基于 APIGateway 打造生产级别的 Knative

这里我们开启公网二级域名进行测试访问,开启后如图所示:

基于 APIGateway 打造生产级别的 Knative

创建 VPC 授权

由于我们是访问 K8s VPC 内的服务,需要创建 VPC 授权。选择开放 API->VPC 授权:

基于 APIGateway 打造生产级别的 Knative

点击【创建授权】,设置 VPC Id 以及内网 SLB 实例 Id。这里创建  knative-test VPC 授权。 
基于 APIGateway 打造生产级别的 Knative

创建应用

创建应用用于 阿里云 APP 身份认证。该认证要求请求者调用该 API 时,需通过对 APP 的身份认证。这里我们创建  knative 应用。

基于 APIGateway 打造生产级别的 Knative

创建 API

登录阿里云 API 网关控制台,开放 API->API 列表,选择【创建 API】。关于创建 API,详细可参考: 创建 API。

基于 APIGateway 打造生产级别的 Knative

接下来我们输入【基本信息】。选择安全认证:阿里云 APP;AppCode 认证可以选择:允许 AppCode 认证(Header & Query)。具体 AppCode 认证方式可以参考: 使用简单认证(AppCode)方式调用 API。

基于 APIGateway 打造生产级别的 Knative

点击下一步,定义 API 请求。协议可以选择 HTTP 和 HTTPS, 请求 Path 可设置  /

基于 APIGateway 打造生产级别的 Knative

点击下一步,定义 API 后端服务。后端服务类型我们设置为 VPC,设置 VPC 授权名称等。

基于 APIGateway 打造生产级别的 Knative

设置 常量参数,其中后端参数名称:Host,参数值:helloworld.default.example.com,参数位置:Header。

基于 APIGateway 打造生产级别的 Knative

点击下一步,完成创建。

基于 APIGateway 打造生产级别的 Knative

发布 API

创建完成之后,可直接进行发布。

基于 APIGateway 打造生产级别的 Knative

选择  线上,点击【发布】。

基于 APIGateway 打造生产级别的 Knative

验证 API

发布完成之后,我们可以在【API 列表】中看到当前 API:线上 (运行中)。

基于 APIGateway 打造生产级别的 Knative

在调用 API 测试之前,我们需要对该 API 进行应用授权,进入 API 详情,选择【授权信息】。

基于 APIGateway 打造生产级别的 Knative

点击【添加授权】,这里我们选择上面创建的  knative 应用进行授权。

基于 APIGateway 打造生产级别的 Knative

接下来我们进行验证 API,点击在 API 详情中,选择【调试 API】,点击【发送请求】,可以看到测试结果信息:

基于 APIGateway 打造生产级别的 Knative

至此,我们通过阿里云 API 网关将 Knative 服务发布完成。 
郑州不孕不育医院:http://jbk.39.net/yiyuanzaixian/zztjyy/

[]小结

通过上面的介绍,相信大家对如何通过阿里云 API 网关将 Knative 服务对外发布有了初步的了解。在实际生产中我们对 Serverless 服务的访问安全、流控、监控运维等要求是不必可少的,而通过阿里云 API 网关恰好可以对 Knative 服务提供保驾护航能力。通过阿里云 API 网关可以对 API 服务配置:

正是通过这些能力,阿里云 API 网关为 Knative 提供生产级别的服务。欢迎有兴趣的同学一起交流。


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯