具有多个端口的Istio网关|服务仅在端口80上响应

时间:2018-11-08 10:49:04

标签: kubernetes istio

嘿,所以我为同一个域{-{1}}配置了端口80和8083的网关。现在,当我使用下面的配置文件创建属性时,一切都会启动并运行。

问题是我在服务和virtualService中使用了example.com,但是我在8083的{​​{1}}处得到了服务的响应。

无法理解为什么服务在80而不是8083上响应。我想将两个端口都保留在网关中,但是在服务和入口端口8083中定义时,它应该专门在8083上响应。

感谢您对此的反馈。

80

1 个答案:

答案 0 :(得分:2)

您的配置有两个问题:

  1. 您必须呼叫端口http-tomcat而不是tomcat-http,请参阅Istio requirements for named ports
  2. 为了在端口8083上启用入口,您必须重新部署istio-ingressgateway服务,并添加端口8083: helm template install/kubernetes/helm/istio/ --name istio-ingressgateway \ --namespace istio-system -x charts/gateways/templates/service.yaml \ --set gateways.istio-egressgateway.enabled=false \ --set gateways.istio-ingressgateway.ports[0].port=80 \ --set gateways.istio-ingressgateway.ports[0].name=http \ --set gateways.istio-ingressgateway.ports[1].port=443 \ --set gateways.istio-ingressgateway.ports[1].name=https \ --set gateways.istio-ingressgateway.ports[2].port=8083 \ --set gateways.istio-ingressgateway.ports[2].name=http-tomcat \ | kubectl apply -f -

话虽如此,您真的必须启用对端口8083的入口访问吗?您可以在VirtualService中为端口80定义一些路径,例如/ tomcat / *,然后将来自端口80的传入流量引导至端口8083上的服务。