Istio的默认网关不是网关,是服务

Istio's default gateway is not a gateway, it is a service

我正在尝试了解 Istio 流量路由。我在演示模式下安装了 Istio,并开始使用示例。这些示例让您安装了一些网关(我安装了 bookinfo-gatewayhttpbin-gateway

但似乎我的所有流量都通过 istio-system 命名空间中 istio-ingressgateway 中定义的“http2”端口。

The documentation 参考了这个:

Istio provides some preconfigured gateway proxy deployments (istio-ingressgateway and istio-egressgateway) that you can use - both are deployed if you use our demo installation

但是当我 运行: kubectl -n istio-system get service istio-ingressgateway -o yaml 结果显示 kind: Service.

演示让我展示的其他网关kind: Gateway

所以我很困惑...

  1. 服务和网关有区别吗?
  2. 我将如何使用示例应用程序网关而不是 istio-ingressgateway(这实际上是一项服务)。
  3. istio 如何将我的 VirtualService 连接到 istio-ingressgateway。是否只是寻找所有 VirtualServices?

Is there a difference between a service and a gateway?

是的。

  • istio-ingressgateway 是类型为 LoadBalancer(或 NodePort,具体取决于您的设置)的 kubernetes 服务,用作集群的入口点。 ingressgateway是istio的ingress controller,完全可选
  • gateway 是 istio 的自定义资源,用作进入您的网格的入口。它被选择器绑定到入口网关,例如参见 [​​=24=]
kind: Gateway
[...]
spec:
  selector:
    istio: ingressgateway

How would I use the sample application gateways instead of the istio-ingressgateway (that is really a service).

你需要两者(或另一种形式的入口控制器并通过网状网关路由所有流量,更多信息见下文)。

How does istio connect my VirtualService to the istio-ingressgateway. Is it just looking for all VirtualServices?

再次查看这个 yaml 文件:https://github.com/istio/istio/blob/master/samples/httpbin/httpbin-gateway.yaml

网关绑定到ingressgateway。

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: httpbin-gateway
spec:
  selector:
    istio: ingressgateway
[...]

A VirtualService 就像文件中的那个绑定到 gateway.

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: httpbin
spec:
  gateways:
  - httpbin-gateway
[...]

因此,如果流量使用您的网关,则考虑 VirtualService

在您配置的网关旁边,总是有网状网关。因此,如果您希望内部集群流量使用 istio 配置,则需要将网状网关添加到您的虚拟服务中:

  gateways:
  - httpbin-gateway
  - mesh

或者为此创建一个单独的虚拟服务。如果您不设置任何网关,将使用网状网关,因为它是默认设置。 请参阅:https://istio.io/latest/docs/reference/config/networking/virtual-service/#VirtualService -> 网关条目