首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Kong入门学习实践(3)路由转发

Kong入门学习实践(3)路由转发

作者头像
Edison Zhou
发布2023-07-09 15:19:22
发布2023-07-09 15:19:22
9010
举报
文章被收录于专栏:EdisonTalkEdisonTalk

最近在学习Kong网关,因此根据老习惯,我会将我的学习过程记录下来,一来体系化整理,二来作为笔记供将来翻看。由于我司会直接使用Kong企业版,学习过程中我会使用Kong开源版。

本篇,我们学习快速配置一个最常见的基本功能:路由转发。

关于路由转发

路由转发是Nginx等代理软件最常见的使用场景,对于这类应用层路由转发,通常相对传输层路由转发(例如LVS)来说能够解析出更多的信息,从而做出更加灵活的路由决策。

对于Kong来说,我们需要先添加一个服务和路由信息,当一个请求到达Kong网关之后要先进行路由匹配,匹配后再将请求转发到路由匹配的服务上。

NOTE:一个服务可以配置多个路由

配置服务

配置服务和和路由由两种方式:一种是通过Kong Admin API,另一种则是通过Konga可视化操作。

这里,我们选择Konga来进行可视化的配置操作。

假设,我们已经部署了一个ASP.NET Core WebAPI项目 sample-order-api,它的地址为:172.16.16.4:5000。

首先,在Konga的Services面板中,单击ADD NEW SERVICE按钮,输入以下信息:

点击Submit后即可在Services列表看到新添加的Service:

配置路由

在Services列表点击新创建的这个sample.order-api.com进入详情页,然后点击Routes,即可看到路由列表。我们刚刚说到,一个服务可以绑定多个路由。在路由列表,点击ADD ROUTE即可添加路由。

需要注意的是,这里的Host的名字需要和后面要添加的Upstream的名字保持一致,否则无法找到上游服务器。

配置上游

点击Konga左侧菜单中的UPSTREAMS,然后再点击CREATE UPSTREAM按钮,添加上游信息:

这里只需要填写Name即可,其他均为默认参数。

然后设置ACTIVE HEALTHCHECK,暂时设置以下内容为3。

配置目标节点

上游创建完成后,在上游列表中即可看到刚刚创建的上游,点击DETAILS按钮进入详情页,然后点击Targets即可看到目标节点列表,随后点击ADD TARGET按钮进入添加目标节点界面。

填写sample-order-api项目的IP和端口号即可,相信配置过Nginx的童鞋应该都很熟悉:

验证结果

首先,在本机的Windows Hosts中将sample.order-api.com指向Kong网关的IP地址。

其次,在浏览器中进行验证:http://sample.order-api.com:8000/api/orders

这里通过Host方式指向Kong网关的代理端口8000,Kong网关帮我们做了路由转发,从sample-order-api项目中获取到了数据。

最后,如果配置了目标节点但是节点状态为Unhealthy,在测试验证时会返回以下错误信息:

它表示Kong无法从环形均衡器中获取到有效的上游服务器目标节点。

对此,你可以手动先将其设置为Healthy再做测试验证:

 当然,要解决这个问题还需要为我们的sample-order-api项目增加一个健康检查的接口用于Kong进行主动的健康检查。

代码语言:javascript
复制
using Microsoft.AspNetCore.Mvc;

namespace EDT.MSA.Ordering.API.Controllers
{
    [Route("api/Health")]
    [ApiController]
    [ApiExplorerSettings(IgnoreApi = true)]
    public class HealthController : ControllerBase
    {
        [HttpGet]
        public IActionResult Get() => Ok($"ok");
    }
}

重新部署sample-order-api之后,编辑UPSTEAM的健康检查Path为/api/health即可:

配置之后,目标节点再也不会Unhealthy了:

示例应用

本节示例应用:https://github.com/EdisonChou/EDT.EventBus.Sample,分支:feature/kong-practice-1

参考资料

闫观涛,《Kong入门与实践-基于Nginx和OpenRestry的云原生微服务网关》

风起云边,《Kong - Overview》

风一样的程序员,《45张图带你从0玩转Kong Gateway

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关于路由转发
  • 配置服务
  • 配置路由
  • 配置上游
  • 配置目标节点
  • 验证结果
  • 示例应用
  • 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档