- 最新动态
- 服务公告
- 产品介绍
- 计费说明
- 快速入门
- 用户指南
- 最佳实践
- API参考
- 常见问题
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
服务网格如何支持自定义网段或端口拦截规则?
操作场景
Istio 为实现服务网格的透明化流量治理,Sidecar默认拦截所有出入流量, 这种设计确保了流量治理无死角、业务零侵入和安全可信。但这种默认拦截机制在实际应用场景下也会带来一些问题:
- 所有流量都经过Sidecar代理,会导致Sidecar的资源占用(内存、CPU)较高,严重时可能导致业务pod重启甚至服务雪崩。
- 某些场景下需要直接访问外部服务(如数据库连接池),不能使用默认拦截机制。
因此本章将介绍如何精细化配置流量拦截规则,以解决Istio的默认拦截机制在实际应用场景下的问题。
负载级别配置拦截IP网段
通过配置业务deployment文件,可以在负载级别配置IP网段拦截:
执行kubectl edit deploy –n user_namespace user_deployment
1. 在deployment.spec.template.metadata.annotations中配置IP网段拦截traffic.sidecar.istio.io/includeOutboundIPRanges:
2. 在deployment.spec.template.metadata.annotations中配置IP网段不拦截traffic.sidecar.istio.io/excludeOutboundIPRanges:
上述操作会导致业务容器滚动升级。
负载级别指定端口配置出入流量拦截
通过修改业务deployment文件,可以在负载级别配置端口上的出入流量拦截规则:
执行kubectl edit deploy –n user_namespace user_deployment
1. 在deployment.spec.template.metadata.annotations中配置入流量指定端口不拦截traffic.sidecar.istio.io/excludeInboundPorts:
2. 在deployment.spec.template.metadata.annotations中配置入流量指定端口拦截traffic.sidecar.istio.io/includeInboundPorts:
3. 在deployment.spec.template.metadata.annotations中配置出流量指定端口不拦截traffic.sidecar.istio.io/excludeOutboundPorts:
4. 在deployment.spec.template.metadata.annotations中配置出流量指定端口拦截traffic.sidecar.istio.io/includeOutboundPorts:
上述操作会导致业务容器滚动升级。