5G下的微服务架构:拥抱NFV,Istio 1.1将支持多网络平面
Posted 分布式实验室
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5G下的微服务架构:拥抱NFV,Istio 1.1将支持多网络平面相关的知识,希望对你有一定的参考价值。
按功能对不同网络进行隔离,以避免相互影响。例如管理流量,控制流量和数据流量分别采用不同的网络平面。
通过多个网络的汇聚/绑定,提供网络设计冗余,增强系统的网络健壮性。
支持按照不同的网络提供不同的SLA(服务等级),例如语音(低延迟)和视频流量(高带宽)具有不同的特点,需要分别对待。
通过网络隔离提高系统的安全性,例如为不同的租户分配不同的网络。
在单个网络带宽有限的情况下,通过多个网络接口增加网络的系统带宽。
Envoy所在节点存在两个网络接口,分别连接到10.75.8.0/24和192.168.10.0/24两个网络上。
Service A被注册到Service Registry中,使用的是第二个网络接口的IP,即10.75.8.101。
Envoy通过xDS接口向Pilot获取配置信息。
Envoy在xDS请求中携带了第一个网络接口的IP,即192.168.10.63。
Pilot从xDS请求中解析出Envoy所在节点的IP,即192.168.10.63。
Pilot用Envoy节点IP来和Service Registry中所有Service Instance的IP进行对比。
由于Service A的注册IP10.75.8.101和节点IP192.168.10.63不一致,Pilot错误判断该节点上没有Service A的Instance,为Service A创建了一个Outbound Listener。
节点的网络接口10.75.8.101上收到一个来自downstream的请求,被重定向到Envoy。
Envoy在15001端口上收到该请求,要求访问Service A。
Envoy将请求发送到10.75.8.101,经过TCP/IP协议栈处理后,进入第二个网络接口,被Iptable拦截,再次被作为入向请求转发到Envoy的15001端口。 上述流程形成了一个死循环,最终导致Envoy由于文件描述符被用光 而crash。
Envoy所在节点存在两个网络接口,分别连接到10.75.8.0/24和192.168.10.0/24两个网络上。
Service A被注册到Service Registry中,使用的是第二个网络接口的IP,即10.75.8.101。
Envoy通过xDS接口向Pilot获取配置信息。
Envoy在xDS请求中携带所在节点上的所有网络接口的IP,在本例中即192.168.10.63和10.75.8.101。
Pilot从xDS请求中解析出Envoy所在节点的所有IP,在本例中即192.168.10.63和10.75.8.101。
Pilot用Envoy节点IP来和Service Registry中所有Service Instance的IP进行对比。
由于Service A的注册IP 10.75.8.101和节点的两个IP之一相同,Pilot判断该节点上存在Service A的Instance,为Service A创建了一个Inbound Listener。
节点的网络接口10.75.8.101上收到一个来自downstream的请求,被重定向到Envoy。
Envoy在15001端口上收到该请求,要求访问Service A。
Envoy将请求发送到127.0.0.1的Service A进程的服务端口上进行处理。
RP:https://github.com/istio/istio/pull/9688
Issue:https://github.com/istio/istio/issues/9441
以上是关于5G下的微服务架构:拥抱NFV,Istio 1.1将支持多网络平面的主要内容,如果未能解决你的问题,请参考以下文章
从架构到组件,深挖istio如何连接管理和保护微服务2.0?