【问题标题】:Getting 503 service unavailable from istio从 istio 获取 503 服务不可用
【发布时间】:2020-02-02 10:12:43
【问题描述】:

我正在创建 istio 服务网格,然后尝试从 istio pod 调用外部服务。

我按照链接中的步骤操作

https://istio.io/docs/tasks/traffic-management/egress/egress-gateway-tls-origination/

直到

2 Verify that your ServiceEntry was applied correctly by sending a request to http://edition.cnn.com/politics.

但是代替“edition.cnn.com”,使用了我的服务。

当我尝试在我的 pod 内进行 curl 时,我收到以下错误。

[2020-02-02T10:02:52.465Z] "GET / HTTP/1.1" 503 UF,URX "-" "-" 0 91 150 - "-" "curl/7.58.0" "fafa8680-bdf1-468a-b50f-1a4430707ceb" "service.abc.com" "173.25.13.66:80" outbound|80||service.abc.com - 173.25.13.66:80 10.44.0.6:47544 - default

我可以 ping 到 service.abc.com,但如何调试此错误,以及如何获取更多日志进行分析?由于上面链接中没有提到为 mtls 和目标规则创建步骤,所以我没有创建它们。

注意:我在 edition.cnn.com 上没有遇到任何问题,但在使用我的服务时遇到问题,该服务在网格外部并在我公司网络内的另一台服务器上运行。

【问题讨论】:

  • 我需要创建任何服务吗?但它没有提到在上面的链接中创建任何服务。
  • 当您使用edition.cnn.com/politics 时,您会得到什么输出? 301?

标签: kubernetes istio


【解决方案1】:

service.abc.com 服务只支持http 还是只支持https 或者同时支持http 和https?是否配置为将 http 重定向到 https ?如果您使用 http 访问端点,并且它既不侦听端口 80 也不将 http 重定向到 https,您预计会得到 503。

如果您按照文档中 5 之前的所有步骤操作并假设 service.abc.com 是 https 服务,它应该可以按预期工作,因为在第 5 步,即使您发送 http 请求,istio egress gateway 也会将其转换为https(TLS origination) 在向service.abc.com 发送请求之前。

【讨论】:

  • service.abc.com 将仅支持 https。在step5,istio只会将http重定向到https?我不需要配置 service.abc.com 来将 http 重定向到 https?
  • 您不需要这样做,因为 Istio 网关将执行 TLS 发起,并在原始流量为 HTTP 时打开与外部服务的 HTTPS 连接
  • 事情是这样的。如果你没有在 service.abc.com 上配置重定向,那么当你向它发送 http 请求时你不会得到 301,而如果你配置了重定向,那么会像你一样得到 301正在获得 edition.cnn.com。但是在第 5 步,Istio 将向它发送 https 请求,因此无论您是否配置重定向,它都应该成功。
  • 你知道如何将客户端证书传递给这个外部 https 服务吗?
  • 为什么需要通过客户端证书?你是否在 pod 和外部服务之间进行双向 TLS?如果没有,则只需要提供外部服务的服务器证书即可。
猜你喜欢
  • 2015-08-17
  • 2021-03-12
  • 1970-01-01
  • 2017-11-10
  • 2015-10-20
  • 2015-01-14
  • 2016-07-29
  • 2020-05-26
  • 2018-03-09
相关资源
最近更新 更多