问题标签 [kong-ingress]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
392 浏览

kubernetes - 如何在 Ingress k8s 对象中使用 Kong 的 Capturing Group 来重写逻辑?

我想在 Ingress k8s 对象中使用 Kong 的 Capturing Group 来执行 uri 重写。我想实现以下逻辑: https://kong_host:30000/service/audits/health -> (rewrite) https://kong_host:30000/service/audit/v1/health

入口资源:

Kong插件

谢谢。

0 投票
1 回答
119 浏览

kubernetes - 具有用户指定 loadbalancerIP 的 kong 入口控制器

我有一个 aks 集群,我想用我预先存在的 IP 地址安装一个 kong 入口控制器,但是在使用 helm 安装时我找不到设置这个值的方法

value.yaml文件中,我没有找到任何可以设置的 loadBalancerIP 值,但是在_helpers.tpl文件中,我发现了一些关于 loadBalancerIP 字段的内容,但我不明白如何将值传递给这个文件.

谢谢

0 投票
2 回答
818 浏览

kubernetes - Kubernetes 集群中两个服务之间使用 Ingress 作为 API 网关的通信

我在尝试在 Kubernetes 集群中的两个服务之间进行通信时遇到问题。我们使用 kong 入口对象作为“api 网关”来重新路由来自简单 Angular 前端的 http 调用,以将其发送到 .NET Core 3.1 API 控制器接口后端。

在这两个 ClusterIP 服务前面有一个入口控制器,用于从我们的 kubernetes 集群接收外部 http(s) 调用以启动前端服务。此入口显示在此处:

第一个服务称为“前端服务”,这是一个简单的 Angular 9 前端,允许我输入 http 字符串并将这些字符串提交给后端。
清单 yaml 文件如下所示。请注意,由于各种原因,图像名称被混淆了。

第二个服务是一个简单的 .NET Core 3.1 API 接口,它在到达控制器时打印回一些文本。后端服务称为“dataapi”,其中有一个简单的控制器,称为 ValuesController。

清单 yaml 文件如下所示。

我们使用 kong 入口作为代理将传入的 http 调用重定向到 dataapi 服务。此清单文件如下所示:

执行“kubectl get all”会产生以下输出:

'kubectl get ingresses' 给出:

从前端来看,期望构造 http 字符串:

将在后端输入我们的“值”控制器并从该控制器返回文本字符串。

这两个服务都运行在同一个 kubernetes 集群上,这里使用的是 Linode。我们的想法是,它是两种类型为 ClusterIP 的两个服务之间的“集群内”通信。

Chrome 控制台报错是:

请注意,我们发现了与我们类似的StackOverflow 问题,并且该结果中的建议是将“default.svc.cluster.local”添加到 http 字符串中,如下所示:

这没有用。我们还将服务的命名空间 kong 替换为默认值,如下所示:

产生与上述相同的错误。

我是否缺少关键步骤?任何意见是极大的赞赏!

****************** Eric Gagnon 的回复更新 **************

再次感谢 Eric 的回复。这是我的同事和我根据您的建议尝试过的

  1. Pod dns 配置错误:检查 pod 的第一个名称服务器是否等于 'kube-dns' svc ip 以及搜索是否以 kong.svc.cluster.local 开头:
  1. 应用程序不使用 pod dns:在 Node 中,将 dns.getServers() 输出到控制台
  1. Kong-proxy 不喜欢某些东西:设置日志记录调试、多次点击应用程序以及 grep 日志。

我们在这里尝试了两个测试。首先,我们的 kong-proxy 服务可以从入口控制器访问。请注意,这不是我们简单的前端应用程序。它只不过是一个将 http 字符串传递给我们设置的公共网关的代理。这确实有效。我们通过以下方式暴露了这一点:

但是,当我们尝试从与后端在同一集群中运行的简单前端界面执行此操作时:

在此处输入图像描述

它不适用于文本框中显示的文本。此命令不会添加任何新内容:

前端返回错误。

但是如果我们添加这个 http 文本:

在此处输入图像描述

kong-ingress pod 被击中:

但前端得到一个错误。

所以在这一点上,我们已经尝试了很多事情来让我们的前端应用程序成功地向我们的后端发送一个 http 并得到响应,但我们没有成功。我还尝试了与我们的前端应用程序一起打包的 nginx.conf 文件的各种配置,但那里也没有运气。

我将把所有这些打包到一个 github 项目中。谢谢。

0 投票
1 回答
1062 浏览

google-kubernetes-engine - 如何使用 kong k8 入口公开 kong admin api?

我为我们的 kubernetes 部署了 kong 入口控制器,我们正在使用它来路由我们的微服务。

现在我想公开我的管理 API 以使用其他功能并获取监控统计信息。请有人可以帮助我。

没有任何文件可以帮助我解决这个问题。

0 投票
0 回答
1161 浏览

lua - 为什么 Kong API Gateway 在将请求转发到后端时会删除 X-Forwarded-For 标头?

我正在尝试将包含客户端 IP 地址的 X-Forwarded-For 标头转发到后端服务,但似乎 Kong 不允许这种情况发生,当我在 Kong 日志中记录客户端时,我可以读取客户端的 IP 地址但是,每次将 X-Forwarded-For 标头添加到后端请求中的尝试都失败了,有人知道这是为什么吗?

我的kong配置文件中有这个

0 投票
1 回答
512 浏览

lua - Kong如何检测连接超时?

目前,每当上游服务宕机时,kong 将抛出“{“message”:“failure to get a peer from the ring-balancer”}”

我正在尝试创建一个自定义插件来检测连接超时并向客户端返回自定义消息,我现在面临的阻止程序是在我的自定义插件中编写 lua 代码来检测超时。我试过使用

但这似乎也没有检测到超时。

有谁知道在编写自定义 kong 插件时我应该怎么做来检测连接超时?

0 投票
1 回答
70 浏览

kubernetes-ingress - 将 Kubernetes Ingress Controller 与 postgres 数据库一起使用时,如何添加自定义实体?

标题。我让 Kong 与 Kubernetes Ingress Controller 一起运行。我已经有一个可用的自定义插件。我尝试将迁移文件夹添加到我的插件文件中,其中包含适当的迁移,但子目录被忽略kubectl create configmap并且 -R 标志不起作用。

0 投票
1 回答
201 浏览

kubernetes - Kong Ingress cert-manager 路由错误

我有一个带有 kong-ingress 和 cert-manager 的 k8s 集群。

  • Backend在:domain.network/*

为了更新证书,cert-manager 启动一个新的 pod 和入口,它应该回复:

  • CertManagerHandler在:domain.network/.well-known/xxx/zzz

但是,当尝试访问众所周知的路由时,Backend处理请求,而不是CertManagerHandler

我认为它可能来自*路径,Backend但我不确定。

入口

我定义Backend了入口:

如何使 .well-known 端点由 cert-manager pod 处理?

0 投票
1 回答
74 浏览

kong - Kong dbless/kong-oidc - 是否可以使用 kong-oidc 插件 dbless?

我无法在 dbless 模式下使用 nokia/kong-oidc 插件找到任何文档。这可能吗?

0 投票
1 回答
165 浏览

kubernetes - 如何在 GKE 和 Kong Ingress 上设置每秒请求数限制?

我在 GKE 上有一个集群,我想为传入请求设置一个限制,但我找不到使用 Kong Ingress Controller 的方法。我找不到有关此特定主题的任何文档或信息。