Protocol Selection

    Non-TCP based protocols, such as UDP, are not proxied. These protocols will continue to function as normal, without any interception by the Istio proxy but cannot be used in proxy-only components such as ingress or egress gateways.

    Istio can automatically detect HTTP and HTTP/2 traffic. If the protocol cannot automatically be determined, traffic will be treated as plain TCP traffic.

    Explicit protocol selection

    Protocols can be specified manually in the Service definition.

    This can be configured in two ways:

    • By the name of the port: .
    • In Kubernetes 1.18+, by the appProtocol field: appProtocol: <protocol>.
    • http2
    • tcp
    • tls
    • grpc-web
    • mysql*
    • redis*

    * These protocols are disabled by default to avoid accidentally enabling experimental features. To enable them, configure the corresponding Pilot .

    Below is an example of a Service that defines a mysql port by and an http port by name: