繁体   English   中英

无法访问 api 托管在 EKS 中并通过带有 NLB 的 istio-ingressgateway 路由

[英]Unable to access api hosted in EKS and routed via istio-ingressgateway with NLB

AWS 的新手,试图公开 API 并遇到问题。

我有一个 API 部署到 AWS 的 EKS 集群,我的 API 连接到 clusterIP 服务。 该 clusterIP 服务附加到一个Virtual Service (VS),公开 API 的端口和一个以路由为前缀的固定主机名,该VS连接到一个GatewayHTTP ), HTTPS所有(*星号作为主机)连接。 发布我们所有的 HTTP 和 HTTPS 请求都映射到istio-system命名空间下托管的istio-ingressgateway下的 2 个节点端口。 现在,这 2 个暴露的nodePorts被在相同 nodePorts 上注册的目标组使用,并且这些目标组被我们的NLB监听。 NLB 通过其 NLB 的DNS Name CNAME名称(也尝试使用A )类型连接到 Route53 中的Route53条目。 现在,我正在尝试使用上述设置从浏览器访问我的 API,但每当我尝试(使用 A 型)时,我都会收到500: internal server error ,但我的 API 的 pod 上没有错误。 CNAME没有结果,它只是给出超时。

我遵循了与另一个 API 在同一集群上部署的相同过程,但另一个 API 工作正常,而我的 API 无法访问。

编辑 1 :尝试使用CloudWatch捕获错误,但我们得到了信息量不大的错误:

{
"requestId": "e0etYh9BvHcES6A=",
"IP": "<ip-address>",
"requestTime": "16/Jan/2023:05:19:17 +0000",
"httpMethod": "GET",
"routeKey": "$default",
"status": "500",
"protocol": "HTTP/1.1",
"responseLength": "35"
}

编辑 2:能够使其工作。 解决方案:由于我们的 NLB 配置了一个internal方案,我们需要将它与 API 网关连接,除了route53记录需要配置A方案,一旦更改到位,我们就可以访问我们的 API从浏览器。

问题:

  1. 这是使用 NLB 和 istio-ingressgateway 服务从 EKS 集群公开 API 的正确方法吗?
  2. 我们是否只允许在istio-system -system 下通过 istio-ingressgateway 路由一项服务? 我们需要为另一个 API 写一个新的吗?

看起来问题与使用内部方案配置的 NLB 以及未连接到 API 网关有关。 Route 53 记录需要配置 A 方案而不是 CNAME。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM