可否将与应用共载的Istio Envoy Sidecar配置为网关实现TLS终止
问题解答
结论
完全可以实现,Istio sidecar(Envoy)本身原生支持自定义TLS终止、mTLS传输、自定义TLS origination能力,可完全匹配你描述的流量处理需求。
各需求对应的配置逻辑
- 入站方向TLS终结:你可以通过两种方式实现和Istio Ingress Gateway一致的TLS终止能力:
- 方式一:创建
Gateway资源,将资源的selector字段设置为你的应用Workload的标签,同时在Gateway的servers配置中指定你要监听的端口、TLS版本、自有证书的Secret引用,Istio会自动把对应配置下发到匹配的sidecar,由sidecar完成入站TLS流量解密后转发给本地应用。 - 方式二:通过
EnvoyFilter资源自定义sidecar的入站监听器配置,指定TLS证书的挂载路径、加密套件等参数,灵活性更高。
- 方式一:创建
- 跨sidecar通信走Istio mTLS:你只需要在对应命名空间或者全局范围创建
PeerAuthentication资源,将mTLS模式设置为STRICT,所有开启了sidecar注入的服务之间的东西向流量会自动使用Istio控制面颁发的证书完成双向TLS加密,无需额外调整应用配置。 - 出站方向上游重加密:你可以创建
DestinationRule资源,匹配你要转发的上游服务,在tls字段中配置TLS origination规则,指定自有证书的挂载路径、SNI等参数,sidecar会在转发流量到上游之前自动用你指定的证书完成TLS重加密。
参考配置说明
- 自定义证书挂载:你可以通过Pod Annotation
sidecar.istio.io/userVolume和sidecar.istio.io/userVolumeMount配置,让sidecar自动挂载存储了自有证书的K8s Secret到指定路径,供TLS配置调用。 - 入站TLS配置逻辑和Istio Ingress Gateway的配置完全一致,你可以复用Ingress Gateway的TLS配置模板,仅修改
selector参数匹配你的应用Workload即可。 - 出站TLS origination的配置可以参考Istio官方的出口流量TLS发起配置样例,替换证书路径为你自己的证书路径即可生效。
内容的提问来源于stack exchange,提问作者Arsen
相关产品推荐
相关产品推荐

