天天看点

内部通讯-Sidecar ProxyIstio Sidecar Proxy

Istio Sidecar Proxy

Cluster IP解决了服务之间相互访问的问题,但从上面Kube-proxy的三种模式可以看到,Cluster IP的方式只提供了服务发现和基本的LB功能。如果要为服务间的通信应用灵活的路由规则以及提供Metrics collection,distributed tracing等服务管控功能,就必须得依靠Istio提供的服务网格能力了。

在Kubernetes中部署Istio后,Istio通过iptables和Sidecar Proxy接管服务之间的通信,服务间的相互通信不再通过Kube-proxy,而是通过Istio的Sidecar Proxy进行。请求流程是这样的:Client发起的请求被iptables重定向到Sidecar Proxy,Sidecar Proxy根据从控制面获取的服务发现信息和路由规则,选择一个后端的Server Pod创建链接,代理并转发Client的请求。

Istio Sidecar Proxy和Kube-proxy的userspace模式的工作机制类似,都是通过在用户空间的一个代理来实现客户端请求的转发和后端多个Pod之间的负载均衡。两者的不同点是:Kube-Proxy工作在四层,而Sidecar Proxy则是一个七层代理,可以针对HTTP,GRPS等应用层的语义进行处理和转发,因此功能更为强大,可以配合控制面实现更为灵活的路由规则和服务管控功能。

Istio Sidecar Proxy

内部通讯-Sidecar ProxyIstio Sidecar Proxy

继续阅读