Istio 协议选择
Istio支持代理的协议
-
支持代理任何类型的TCP流量,包括HTTP、HTTPS、gRPC及原始TCP(raw tcp)协议
-
但为了提供额外的能力,比如路由和更加丰富的指标,Istio需要确定更具体的协议(应用层协议)
-
Istio不会代理UDP协议
协议选择
-
Istio能够自动检测并识别HTTP和HTTP/2的流量,未检测出的协议类型将一律视为普通的TCP流量
-
也支持由用户手动指定
手动指定协议
-
Service Port应该明确指定使用的协议
-
命名格式
-
<protocol>[-<suffix>]
-
Kubernetes v1.18及之后的版本中,可以直接使用appProtocol字段进行标识
-
示例
kind: Service
metadata:
name: myservice
spec:
ports:
- port: 3306
name: database
appProtocol: https
- port: 80
name: http-web
Istio支持的协议类型
参考文档
https://istio.io/latest/docs/ops/configuration/traffic-management/protocol-selection/