Открыть внешний порт в Istio - проблема только на docker-for-mac
Обновление: эта проблема только на Docker-для-Mac
Я уже давно гоняюсь за этим - как открыть внешний порт в Istio.
Обратите внимание, все это работает на port 80
почему бы и нет port 8080
?
Используя штурвал, я изменил значение в values.yaml
шлюзы:
- port: 80
targetPort: 80
name: http2
# nodePort: 31380
- port: 8080
targetPort: 8080
name: http2-testport
# nodePort: 31480
Я создал Istion Gateway:
# 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:
1 ответ
Вы должны определить VirtualService
чтобы указать, куда (на какой микросервис) должен быть направлен входящий трафик, см. https://istio.io/docs/tasks/traffic-management/ingress/.
Также попробуйте отправить заголовок Host с вашим запросом, например, с помощью curl
-H Хост: my-service.default.svc.cluster.local.