协议选择
使用非基于 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
端口: