Kubernetes跨节点Pod通信,它如何工作?

问题描述 投票:2回答:1

我一直在研究kubernetes Pod通信如何跨节点工作,到目前为止,这是我的学习重点:

基本上,下图描述。每个Pod如何具有链接到veth并桥接到主机eth0接口的网络接口eth0。

在Pod之间进行跨节点通信的一种方法是相应地配置路由表。

假设节点A的地址域为10.1.1.0/24,而节点B的地址域为10.1.2.0/24。

我可以在节点A上配置路由表以将流量从10.1.2.0/24转发到10.100.0.2(节点B的eth0),类似地,节点B将流量转发到10.1.1.0/24到10.100.0.1(eth0的流量) A的节点]

如果我的节点没有被路由器分割,或者如果对路由器进行了相应的配置,这是可行的,因为它们会丢弃以私有IP地址为目的地的数据包,这是不实际的!

enter image description here

这里我们将讨论SDN,我不清楚,这显然是解决方案。据我所知,SDN封装数据包以设置可路由的源和目标Ips

因此,基本上在创建SDN的kubernetes上部署一个Container网络插件,基本上就创建了守护程序集和其他辅助kubernetes对象。

我的问题是:

这些守护程序集如何替换路由表修改并确保Pod可以在节点之间通信?

守护程序集也将是Pod,如何影响网络和具有不同名称空间的其他Pod?

kubernetes sdn
1个回答
1
投票

这些守护程序集如何替换路由表修改并确保Pod可以在节点之间通信?

可以使用kubenet-pluginCNI-plugin自定义网络,如在每个节点上运行的Network Pluginskubelet中所述。网络插件负责处理路由,可能使用kube-proxy。例如。 Cilium CNI插件是complete replacement of kube-proxy,正在使用eBPF instead of iptables

守护程序集也将是Pod,如何影响网络和具有不同名称空间的其他Pod?

是,DaemonSet是普通广告连播。 Kubelet是一种特殊的node-component,用于管理Pod,但不是由Kubernetes创建的容器。

[Life of a packet是有关Kubernetes网络的推荐演示文稿

© www.soinside.com 2019 - 2024. All rights reserved.