簡體   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