Docker 在kubernetes中运行nginx转发代理,获取连接超时

Docker 在kubernetes中运行nginx转发代理,获取连接超时,docker,nginx,kubernetes,proxy,istio,Docker,Nginx,Kubernetes,Proxy,Istio,我试图在kubernetes中运行一个nginx转发代理,但我面临一些问题 我的配置: nginx配置为带有http连接模块的转发代理,在docker上运行:-侦听888 具有istio 1.4的K8S,主机暴露于36088 用于测试的Firefox 我的步骤: 对于本地测试,我正在配置中的连接设置,以指向在Docker中运行的nginx实例,该实例位于localhost:8888。通过此配置,代理的行为符合预期,根据nginx.conf拒绝并允许通信 为了在K8S中测试我的pod,我可以

我试图在kubernetes中运行一个nginx转发代理,但我面临一些问题

我的配置:

  • nginx配置为带有http连接模块的转发代理,在docker上运行:-侦听888
  • 具有istio 1.4的K8S,主机暴露于36088
  • 用于测试的Firefox
我的步骤:

  • 对于本地测试,我正在配置中的连接设置,以指向在Docker中运行的nginx实例,该实例位于
    localhost:8888
    。通过此配置,代理的行为符合预期,根据
    nginx.conf
    拒绝并允许通信

  • 为了在K8S中测试我的pod,我可以运行我的pod 8888:8080的
    kubectl端口转发名称,并将Firefox配置为使用在
    localhost:8080
    上转发的代理。根据第1点,代理按预期工作,我可以在日志中看到访问我的pod的流量

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

  • 遗憾的是,当我将Firefox配置为使用
    proxy.mydomain.net:36088
    时,我得到了
    连接超时
    ,我可以看到流量实际上并没有击中我的pod,我也没有得到任何日志

    换句话说,当我将代理用作代理时,代理似乎不起作用,但当我访问普通网站的URL时,它的响应良好


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

    经过大量挖掘,我们成功地完成了这项工作

    这是我们的模板的外观:

    关键是:

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

    你好。您是否尝试过使用
    LoadBalancer
    (不带
    Istio
    )类型的服务直接公开您的代理?你有没有这样做过?它可以揭示实际问题所在,这取决于它是否有效。