【问题标题】:Running an nginx forward proxy in kubernetes, getting connection timeout在 kubernetes 中运行 nginx 转发代理,连接超时
【发布时间】:2021-04-12 15:05:42
【问题描述】:

我正在尝试在 kubernetes 中运行 nginx 转发代理,但我遇到了一些问题。

我的配置:

我的步骤:

  1. 对于本地测试,我将Firefox 中的连接设置配置为指向在localhost:8888 上在Docker 中运行的nginx 实例。使用此配置,代理按预期运行,根据nginx.conf 拒绝和允许流量。

  2. 为了在 K8S 中测试我的 pod,我可以运行 kubectl port-forward name-of-my-pod 8888:8080 并将 Firefox 配置为使用在 localhost:8080 上转发的代理。根据第 1 点,代理按预期工作,我可以在日志中看到访问我的 pod 的流量。

  3. 最后,为了测试我的 istio/AKS 配置,我可以使用 Web 浏览器点击 https://proxy.mydomain.net:36088(在网关中定义)。 url 响应很好,我可以看到 pod 输出了一些日志。

但遗憾的是,当我将 Firefox 配置为使用 proxy.mydomain.net:36088 时,我收到了 connection timeout,我可以看到流量实际上并没有到达我的 pod,而且我没有收到任何日志。

换句话说,当我将其用作代理时,代理似乎无法正常工作,但当我访问其 URL 时,它响应正常。

基于流量似乎没有到达我的 pod 的事实,我想我需要在 istio/aks 中配置其他东西以确保我的服务/pod 作为代理工作,但我不知道如果我的猜测是正确的。我有什么明显的遗漏吗?

【问题讨论】:

  • 你好。您是否尝试过使用LoadBalancer 类型的服务(没有Istio)直接公开您的代理?你有没有设法让它以这种方式工作?它可以揭示实际问题所在,具体取决于它是否有效。

标签: docker nginx kubernetes proxy istio


【解决方案1】:

经过大量挖掘,我们设法完成了这项工作。

我们的模板如下所示:deployment, gateway, service and virtualservice

关键是:

  • 将.Values.istio.port.number 添加到 istio-ingressgateway
  • 将.Values.istio.port.protocol配置为TCP
  • 将网关配置为PASSTHROUGH

【讨论】:

    猜你喜欢
    • 2018-08-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-12
    • 1970-01-01
    • 1970-01-01
    • 2012-09-29
    • 1970-01-01
    • 2014-03-01
    相关资源
    最近更新 更多