Istio 1.0版本只支持在单个网络,,,,,,,即Mesh中的效劳只能毗连在一个网络上。。。。虽然在架构设计上是开放的,,,,,,,但从现在的代码来看,,,,,,,Istio的内部实现照旧和Kubernetes高度集成的。。。。由于Kubernetes集群中Pod缺省只支持一个网络接口,,,,,,,因此Istio也保存该限制并不让人意外。。。。
随着Kubernetes在NFV领域中的逐渐应用,,,,,,,已经泛起多个Kubernetes的多网络平面解决计划,,,,,,,Istio也需要思量支持多网络平面,,,,,,,以为5G的微效劳化架构提供效劳通讯和管控的基础设施。。。。
多网络平面是一个电信行业的常用术语,,,,,,,即将一个电信装备或者系统同时毗连到多个网络上。。。。简而言之,,,,,,,就是一个主机上有多个物理或者虚拟的网络接口,,,,,,,这些接口划分毗连到差别的网络,,,,,,,这些网络之间一样平常是相互自力的。。。。由于电信系统对可靠性的要求很是高,,,,,,,因此系统会通过设置多网络平面来阻止差别网络流量的相互影响,,,,,,,提高系统的结实性。。。。
在电信的NFV(网络功效虚拟化)领域中,,,,,,,已经有多个针对Kubernetes的多网络平面解决计划。。。。其中一个Kubernetes推荐的计划是中兴通讯提供的Knitter开源实现。。。。下图展示了Knitter是怎样实现Kubernetes的多网络平面支持的。。。。
要支持多网络平面,,,,,,,Istio需要修改Pilot天生Outbound Listener的代码实现
效劳注册:
1) Envoy所在节点保存两个网络接口,,,,,,,划分毗连到10.75.8.0/24和192.168.10.0/24两个网络上。。。。
2) Service A被注册到Service Registry中,,,,,,,使用的是第二个网络接口的IP,,,,,,,即10.75.8.101。。。。
Envoy初始化(增添多网络平面处置惩罚逻辑):
1) Envoy通过xDS接口向Pilot获取设置信息。。。。
2) Envoy在xDS请求中携带所在节点上的所有网络接口的IP,,,,,,,在本例中即192.168.10.63和10.75.8.101。。。。
3) Pilot从xDS请求中剖析出Envoy所在节点的所有IP,,,,,,,在本例中即192.168.10.63和10.75.8.101。。。。
4) Pilot用Envoy节点IP来和Service Registry中所有Service Instance的IP举行比照。。。。
5) 由于Service A的注册IP 10.75.8.101和节点的两个IP之一相同,,,,,,,Pilot判断该节点上保存Service A的Instance,,,,,,,为Service A建设了一个Inbound Listener。。。。
效劳请求:
1) 节点的网络接口10.75.8.101上收到一个来自downstream的请求,,,,,,,被重定向到Envoy。。。。
2) Envoy在15001端口上收到该请求,,,,,,,要求会见Service A。。。。
3) Envoy凭证Pilot下发的设置将该请求交由在Service A端口的Inbound Listener,,,,,,,该Listener将请求分发到Service A的Inbound Cluster上,,,,,,,对应IP地点为127.0.0。。。。1。。。。
4) Envoy将请求发送到127.0.0.1的Service A历程的效劳端口上举行处置惩罚。。。。
该修改计划已实现并提交PR合入到Istio 代码中,,,,,,,在1月份宣布的Istio 1.1 Release中将会正式支持。。。。
Copyright ? 918博天堂 版权所有 京ICP备05032414号
京公网安备11010802024551号