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: