Hov*_*yan 4 networking kubernetes
我是 kubernetes 的新手,我试图了解当 NodePort 向外界公开端口时 kubernetes 网络是如何工作的。
假设我们的 kubernetes 集群中有两个节点,分别称为 Node1 和 Node2。我们在 Node2 上部署了一个 pod。
然后我们为这个 Pod 创建一个 NodePort 服务。为了简单起见,我们假设所有端口(targetPort、nodePort、port)都是 3000。现在,一个数据包到达 Node1 的端口 3000(没有部署 pod)。据我了解,iptables 规则规定该数据包将发送到 Node2 上的 pod。我的问题是 pod 收到数据包时看到的 IP 是什么,以及它的响应数据包如何从外界返回到我们的初始客户端。
数据包在 Node1 处进行源 NAT。Node1将源IP替换为自己的IP,目标IP替换为Pod IP。Pod 的回复被发送到 Node1,然后 Node1 将其发送回客户端。
\n\n\n\n(在文档中,pod 在节点 1 上运行,节点 2 是从客户端接收数据包的节点。)
\n\n\n\n\n\n
\n- 客户端发送数据包到node2:nodePort
\n- node2 将数据包中的源 IP 地址 (SNAT) 替换为自己的 IP 地址
\n- node2 将数据包上的目标 IP 替换为 Pod IP
\n- 数据包被路由到节点 1,然后路由到端点
\n- pod\xe2\x80\x99s 回复被路由回\n node2
\n- pod\xe2\x80\x99s 回复被发送回客户端
\n
client\n \\ ^\n \\ \\\n v \\\n node 1 <--- node 2\n | ^ SNAT\n | | --->\n v |\n endpoint\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
548 次 |
| 最近记录: |