协议选择

    使用非基于 TCP 的协议时,如 UDP,不会被 Istio 代理拦截,可以继续正常工作。但是不能在仅代理的组件中使用,如 Ingress 或 Egress Gateway。

    Istio 可以自动检测出 HTTP 和 HTTP/2 流量。如果未自动检测出协议,流量将会视为普通 TCP 流量。

    手动协议选择

    协议可以在 Service 定义中手动指定。

    可以通过以下两种方式配置:

    • 通过端口名称配置:。
    • 在版本 1.18+ 的Kubernetes,通过 appProtocol 字段配置:appProtocol: <protocol>
    • HTTP2
    • TCP
    • TLS
    • gRPC-Web
    • MySQL*
    • Redis*

    * 在默认情况下,这些协议是禁用的,目的是避免无意启用 Experimental Feature。 如需启用它们,需配置相应的 Pilot 。

    例如,Service 通过 appProtocol 、名称分别定义一个 端口和一个 http 端口: