gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 11:43:06 31 4
gpt4 key购买 nike

我一直在研究 kubernetes pod 通信是如何跨节点工作的,到目前为止,这是我的摄入量:
基本上,下图描述。每个 pod 如何拥有连接到 veth 的网络接口(interface) eth0,然后桥接到主机的 eth0 接口(interface)。
在 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)一种)
如果我的节点没有被路由器分隔,或者如果路由器被相应地配置,这可以工作,因为否则它们会丢弃以私有(private) IP 地址作为目标的数据包,这是不切实际的!
enter image description here
在这里,我们将讨论 SDN,我不清楚这显然是解决方案。
据我所知,SDN 封装数据包以设置可路由的源和目标 Ips
因此,基本上要在创建 SDN 的 kubernetes 上部署一个容器网络插件,您基本上可以创建守护程序集和其他辅助 kubernetes 对象。
我的问题是:
这些守护程序集如何替换路由表修改并确保 pod 可以跨节点通信?
同样是 pod 的守护程序集如何影响网络和其他具有不同命名空间的 pod?

最佳答案

How do those daemon sets replace the routing tables modifications and make sure pods can communicate across nodes?



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

How do daemon sets wich are also pods, influence the network and other pods which have diffrent namespaces?



是的, DaemonSet是普通的 pod 。 Kubelet 是一个特殊的 node-component管理 pod,但不是由 Kubernetes 创建的容器除外。

Life of a packet 是关于 Kubernetes Networking 的推荐演示文稿

关于Kubernetes Pod 跨节点通信,它是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58859875/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com