问题标签 [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.
kubernetes - Kubernetes Pod 通过负载均衡器而不是内部与其他 Pod 通信
我在 AWS GovCloud 中有一个 Kubernetes 集群。我已经在命名空间“kong”中部署了 Kong Ingress Controller(私有 NLB)以及 kong-proxy 服务。在命名空间“A”中,我已经部署了我的应用程序以及一个 Ingress 对象资源。我已经部署了 Keycloak(身份验证/授权应用程序)、Statuses(返回操作状态的自定义 Ruby on Rails 应用程序 - 例如 10%、20%、50%、100% 完成)和 Operation A,一个定制的执行计算的 Java 应用程序。
我的流量:
客户端 --> 负载均衡器 DNS --> kong-proxy --> Ingress --> Keycloak 服务 --> 使用 Keycloak 进行身份验证 --> 返回身份验证承载令牌控制台输出。
客户端(我)传递令牌--> 负载均衡器 DNS --> kong-proxy --> 入口 --> 操作 A 服务 -->验证并初始化操作 A
操作 A 服务 --> 向 Statuses 服务发送状态更新 -->连接被拒绝错误
在对网络流进行故障排除时,我看到操作 A 正在尝试通过负载均衡器的 DNS 名称连接到状态:操作 A 服务 --> 负载均衡器 DNS --> kong-proxy --> 入口 --> 状态服务
但这是一个非常奇怪的网络流。一个 pod 不应通过负载均衡器连接到同一集群和命名空间中的另一个 pod。它应该只通过 K8s 内部 DNS 名称连接:name.namespace.svc.cluster.local:port/path
这是 Kong 入口控制器的问题还是我应该查看我的应用程序配置?是否可以将任何注释或参数添加到入口控制器或入口对象清单以更正此网络路径?
load-balancing - Kong Istio 集成
Kong Api gateway
作为南北交通管制员和Istio service mesh
我的东西向交通管制员,我被难住了。我关注了 Kong 提供的博客,但没有工作……我的问题是……我的 Istio 服务网格需要 GW 和 VS 吗?我一直没有找到路线和以下错误..请帮助
GET /productpage HTTP/1.1” 502 - direct_response - “-” 0 0 0 - “172.31.76.49” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36” “d9f5fa8c-910e-4764-9e5d-a3a59a64b613” “****.elb.us-east-1.amazonaws.com” “-” - - 10.100.135.18:9080 172.31.76.49:0 - block_all
谢谢你们
kubernetes - 如何在kong rate limit中为单个服务应用多个速率限制
我有服务,我需要根据用户和组织来限制 API。
示例:用户 A 和用户 B 属于同一个 OrgA。任何用户每天可以访问 API 5 次,组织每天可以访问 API 8 次。
服务
服务正在选择注释中提供的最后一个插件。是否可以应用两个变体的相同插件?在上面的例子中,它只选择了 rate-limiting-myapp ,它是插件列表中的最后一个。如果我们还有其他方法可以做,请帮助我。
它是 kong 速率限制插件的限制吗?我们是否需要高级速率限制器(企业)来完成这项工作?
kubernetes - Kong的片状限速行为
我已经在 Azure Kubernetes 服务中部署了一些 API,并且我一直在尝试使用Kong 以能够使用它的一些功能,例如速率限制和 IP 限制,但它并不总是按预期工作。这是我使用的插件对象:
第一个问题是,当我尝试通过将全局标签设置为“true”来跨集群应用这些插件时,如此处所述,使用 kubectl 应用它时出现此错误:
第二个问题是,即使我使用了 KongClusterPlugin 并将 global 设置为“true”,我仍然必须将插件显式添加到 ingress 对象中才能正常工作。这是我的入口:
这是我的服务:
第三个问题是将limit_by设置为ip,我希望它对每个IP进行速率限制,但我注意到当客户端集体达到阈值时它会阻止所有客户端。我试图通过保留客户端 IP 并在服务对象中将 externalTrafficPolicy 设置为 Local 来缓解这种情况,因为我认为 Kubernetes 对象可能没有接收到实际客户端的 IP。现在速率限制行为似乎更合理,但有时它好像回到了旧状态并随机返回 HTTP 429。我在这里看到的另一个问题是,只有当服务类型设置为 LoadBalancer 或 NodePort 时,我才能将 externalTrafficPolicy 设置为 Local。我将我的服务设置为 LoadBalancer 类型,它公开地公开它并且似乎是一个问题。具有讽刺意味的是,使用入口控制器 s 应该屏蔽服务而不是公开它。我在这里遗漏了什么还是没有意义?
第四个问题是 IP 限制插件似乎不起作用。我能够成功地从具有我放入“config.deny”中的 IP 的机器调用 API。
第五个问题是每分钟我必须访问 API 以获取 HTTP 429 的次数与我在“config.minute”中放置的值不匹配。
kubernetes - Prometheus 无法抓取 kong-ingress-controller 指标
我已经安装了Prometheus和Grafana来使用helm 图表监控我的K8S 集群和微服务:
的内容promehteus-values.yaml
是:
然后我安装kong-ingress-controller
使用helm-charts
:
文件内容kong.yaml
为:
我还将configmapmetricsBindAdress
中的值更改为.kube-proxy
0.0.0.0:10249
然后我kong prometheus plugin
使用这个安装yaml file
:
我kong endpoint
的是:
$ kubectl edit endpoints -n kong kong-kong-proxy
最后我写了serviceMonitor
这样kong
的:
毕竟这一切;在看起来像这样targets
:prometheus dashboard
我错过了什么/做错了什么?
api-gateway - 如何在ui重定向中保留kong域名
我正在使用 kong 2.5 进行 API 和微服务路由,并且我需要将 react ui 应用程序放在 kong.so 后面,我在下面创建了指向我的 UI 应用程序的服务。
我已经创建了相同的路线。
香港域名:www.kongeg.com
因此,当我尝试访问“www.kongeg.com/maps/home”时,它会在浏览器上重定向到“www.example.com/maps/home”。
是否可以在不修改服务 url 的情况下在浏览器上保留 kong 域名?所以当我访问“www.kongeg.com/maps/home”时,它应该显示“www.example.com/maps/home”返回的内容。
谢谢
kubernetes-ingress - 在 kong 入口中使用代码段
我想在 Kong 中使用一个片段。我需要在入口中添加一些特定的规则。
我发现最好的东西是 Nginx 中的一个片段,所以我在 Kong ingress 中使用 Nginx 片段,如下所示:
它不起作用,我如何在 Kong ingress 中使用片段或类似的东西?
kong - Kong中的后备路由配置
我正在尝试在我的 K8s 应用程序中创建一个后备路由。我有一个 Pod 服务于一个后备应用程序,该应用程序在 URL http://domain:80/error 上返回一个 404 页面。如果我调用 http://application/error 它工作正常,但一旦我调用 http://application/test 或 http://application/dummy 或 http://application/error-page123 就会失败,它返回 Kong 404页。
我想将所有不存在的路由路由到 /error,我该如何实现。
我的 404 配置 -
日志: