Открыть внешний порт в 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.

См. https://github.com/istio/istio.github.io/pull/2181.

Другие вопросы по тегам