15
2020
04

什么是Ingress网络,它是如何工作的?

Ingress网络是一组规则,充当Kubernetes集群的入口点。这允许入站连接,可以将其配置为通过可访问的URL,负载平衡流量或通过提供基于名称的虚拟主机从外部提供服务。因此,Ingress是一个API对象,通常通过HTTP管理集群中服务的外部访问,是暴露服务的最有效方式。


现在,让我以一个例子向您解释Ingress网络的工作。


有2个节点具有带有Linux桥接器的pod和根网络命名空间。除此之外,还有一个名为flannel0(网络插件)的新虚拟以太网设备被添加到根网络中。


现在,假设我们希望数据包从pod1流向pod 4.请参阅下图。


5c2f0048af78e1d519ce486a56843c36.jpg

因此,数据包将pod1的网络保留在eth0,并进入veth0的根网络。


然后它被传递给cbr0,这使得ARP请求找到目的地,并且发现该节点上没有人具有目的地IP地址。


因此,桥接器将数据包发送到flannel0,因为节点的路由表配置了flannel0。


现在,flannel守护程序与Kubernetes的API服务器通信,以了解所有pod IP及其各自的节点,以创建pods IP到节点IP的映射。


网络插件将此数据包封装在UDP数据包中,其中额外的标头将源和目标IP更改为各自的节点,并通过eth0发送此数据包。


现在,由于路由表已经知道如何在节点之间路由流量,因此它将数据包发送到目标节点2。


数据包到达node2的eth0并返回到flannel0以解封装并在根网络命名空间中将其发回。


同样,数据包被转发到Linux网桥以发出ARP请求以找出属于veth1的IP。


数据包最终穿过根网络并到达目标Pod4。

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。