【问题标题】:Istio Custom Ingress Gateway Works 80 onlyIstio 自定义入口网关仅适用于 80
【发布时间】:2020-01-08 20:39:04
【问题描述】:

我想用 Istio 创建自己的入口网关。这是我的意图:

traffic on 4000 > my-gateway > my-virtualservice >  web service (listening on 4000)

我已经部署了以下 YAML:

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: my-gateway
spec:
  selector:
    istio: ingressgateway
  servers:
  - port:
      number: 4000
      name: http
      protocol: HTTP
    hosts:
    - "*"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: my-virtualservice
spec:
  hosts:
  - "*"
  gateways:
  - my-gateway
  http:
  - route:
    - destination:
        host: web
        port:
          number: 4000

不起作用,但是将网关端口number: 4000 更改为number: 80 确实起作用。 大概是因为istio-ingressgateway 80 点开门。

这让我相信这个链条实际上是:

traffic on 4000 > my-gateway > my-virtualservice > istio-ingressgateway > web service

我假设我可以通过在 istio-ingressgateway 上打开 4000 来解决此问题,但这不会破坏创建自定义网关的意义吗?

我认为创建my-gateway 的全部目的是避免使用istio-ingressgateway

帮助我理解! :D

【问题讨论】:

    标签: kubernetes istio


    【解决方案1】:

    流量:Clent -> LoadBalancer(Ingress Gateway Service) -> Ingress Gateway Envoy -> Sidecar Envoy for your application -> Your application.

    入口网关是部署在 Kubernetes 集群边缘的特使。对集群内服务的所有传入请求(HTTP、TCP)都到达入口网关。网关和虚拟服务类型允许您配置入口网关的 Envoy 代理。

    创建网关对象并不真正部署新网关,它只是配置与入口网关运行相同的特使代理。

    这是一个很好的reference

    【讨论】:

    • 我对@9​​87654323@ 和my-gateway 之间的关系感到困惑,即kind: Gateway。这不是说我定义了两个网关吗?除非您说逻辑链是:istio-ingressgateway > my-gateway > my-virtualservice > my-app 似乎过于复杂且未记录在案。连官网都没提这个>istio.io/docs/tasks/traffic-management/ingress/ingress-control
    • 正如我提到的,作为入口网关的一部分部署的特使代理是通过网关配置的。无论您在内部创建多少网关对象,它只是配置特使代理而不部署新网关或特使。
    • 如果我的Gateway 定义应该重新配置Istio-ingressgateway 服务,为什么我必须做两件事才能让它工作? 1) 创建my-gatewaymy-virtualservice。 2) 编辑istio-ingressgateway 并将端口 3000 添加到它的定义中。您能否指出任何易于理解的文档,因为不幸的是我没有关注您或官方文档。
    • 哦等等。我想你是在说:edge proxy > istio-ingressgateway service > app sidecar proxy > my-app。所以my-gateway 正在改变edge proxy 的规则,但是ingressgateway 服务不接受传入的HTTP 请求,因为该服务没有(默认)配置为接受4000 上的传入 - 因此是第二条规则我上面提到的?对吗?
    • 我已经用参考更新了答案..请检查它
    猜你喜欢
    • 2019-11-01
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-09
    • 2021-08-10
    • 2021-06-24
    • 2012-05-04
    相关资源
    最近更新 更多