更新:此问题仅适用于docker-for-mac
我一直在追逐这个 - 你如何打开一个外部端口进入Istio。
请注意所有这些都适用于port 80
,为什么不在port 8080
?
使用helm,我在values.yaml
网关中更改了值:
- port: 80
targetPort: 80
name: http2
# nodePort: 31380
- port: 8080
targetPort: 8080
name: http2-testport
# nodePort: 31480
我创建了一个Istion网关:
# Istio - Gateway
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: helloworld-gateway
spec:
selector:
istio: ingressgateway # use istio default controller
servers:
- port:
number: 80
name: http-80
protocol: HTTP
hosts:
- "my-service.default.svc.cluster.local"
- port:
number: 8080
name: http-8080
protocol: HTTP
hosts:
- "my-service.default.svc.cluster.local"
8080号港口开放:kubectl get svc -n istio-system
istio-ingressgateway LoadBalancer 10.106.146.89 localhost 80:31342/TCP,443:31390/TCP,31400:31400/TCP,15011:31735/TCP,8060:32568/TCP,8080:32164/TCP,853:30443/TCP,15030:
您必须定义一个VirtualService
来指定入口流量必须指向的位置(参见微服务),请参阅https://istio.io/docs/tasks/traffic-management/ingress/#configuring-ingress-using-an-istio-gateway。
同时尝试根据您的请求发送Host标头,例如与curl
-H主机:my-service.default.svc.cluster.local。