广告
返回顶部
首页 > 资讯 > 数据库 >基于 APIGateway 打造生产级别的 Knative
  • 756
分享到

基于 APIGateway 打造生产级别的 Knative

2024-04-02 19:04:59 756人浏览 泡泡鱼
摘要

导读:在实际应用中,通过 apiGateway(即 API 网关),可以为内部服务提供保护、提供统一的鉴权管理、限流、监控等能力,开发人员只需要关注内部服务的业务逻辑即可。作者元毅在本文中将会为大家介绍:如

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

关于阿里云 API 网关

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

  • 提供防重放、请求加密、身份认证、权限管理、流量控制等多重手段保证 API 安全,降低 API 开放风险

  • 提供 API 定义、测试、发布、下线等全生命周期管理,并生成 SDK、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 全生命周期管理 : 测试、发布、下线

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


您可能感兴趣的文档:

--结束END--

本文标题: 基于 APIGateway 打造生产级别的 Knative

本文链接: https://www.lsjlt.com/news/40355.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 基于 APIGateway 打造生产级别的 Knative
    导读:在实际应用中,通过 APIGateway(即 API 网关),可以为内部服务提供保护、提供统一的鉴权管理、限流、监控等能力,开发人员只需要关注内部服务的业务逻辑即可。作者元毅在本文中将会为大家介绍:如...
    99+
    2022-10-18
  • 基于Jenkins如何打造符合DevOps能力成熟度三级标准的持续集成流水线
    基于Jenkins如何打造符合DevOps能力成熟度三级标准的持续集成流水线,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。DevOps的核心是自动化,自动化的核心是标准化。而D...
    99+
    2023-06-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作