Docker 在kubernetes中运行nginx转发代理,获取连接超时
我试图在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,我可以
- nginx配置为带有http连接模块的转发代理,在docker上运行:-侦听888
- 具有istio 1.4的K8S,主机暴露于36088
- 用于测试的Firefox
localhost:8888
。通过此配置,代理的行为符合预期,根据nginx.conf
拒绝并允许通信
kubectl端口转发名称,并将Firefox配置为使用在localhost:8080
上转发的代理。根据第1点,代理按预期工作,我可以在日志中看到访问我的pod的流量
https://proxy.mydomain.net:36088
(在gatwway中定义)带有web浏览器。url响应很好,我可以看到pod输出一些日志
proxy.mydomain.net:36088
时,我得到了连接超时
,我可以看到流量实际上并没有击中我的pod,我也没有得到任何日志
换句话说,当我将代理用作代理时,代理似乎不起作用,但当我访问普通网站的URL时,它的响应良好
基于流量似乎没有击中我的pod这一事实,我想我需要在istio/aks中配置其他东西,以确保我的服务/pod可以作为代理,但我不知道我的猜测是否正确。我有什么明显的遗漏吗?经过大量挖掘,我们成功地完成了这项工作 这是我们的模板的外观: 关键是:
- 将
添加到istio入口网关.Values.istio.port.number
- 将
配置到TCP.Values.istio.port.protocol
- 将网关配置为
PASSTHROUGH
LoadBalancer
(不带Istio
)类型的服务直接公开您的代理?你有没有这样做过?它可以揭示实际问题所在,这取决于它是否有效。