当前位置: 首页 > 知识库问答 >
问题:

Kubernetes NodePort网络如何在多节点集群上工作?

叶德运
2023-03-14

我是kubernetes的新手,我试图了解当NodePort向外部世界公开一个端口时,kubernetes网络是如何工作的。

假设我们的 kubernetes 集群中有两个节点,称为 Node1 和 Node2。我们在 Node2 上部署了一个 Pod。

然后我们为此 pod 创建一个 NodePort 服务。为简单起见,假设所有端口(目标端口、节点端口、端口)均为 3000。现在,数据包进入 Node1 的端口 3000(其中没有部署 pod)。据我了解,iptables 规则规定此数据包将发送到 Node2 上的 pod。我的问题是 pod 在收到数据包时看到什么 ip,以及它的响应数据包如何从外部世界返回到我们的初始客户端。

共有1个答案

夏祺然
2023-03-14

数据包是节点 1 上的源 NAT。节点 1 将源 IP 替换为其 IP 和目标 IP 作为 pod IP。Pod 的回复被发送到节点 1,节点 1 将其发送回客户端。

从文档中:

(在 docs pod 中,节点 1 在节点 1 上运行,节点 2 是从客户端接收数据包的节点。

  • 客户端将数据包发送到节点 2:节点端口
  • node2 将数据包中的源 IP 地址 (SNAT) 替换为其自己的 IP 地址
  • 节点 2 将数据包上的目标 IP 替换为 Pod IP
  • 数据包路由到节点 1,然后路由到endpoint
  • Pod 的回复被路由回节点 2
  • Pod 的回复将发送回客户端
           client
             \ ^
              \ \
               v \
   node 1 <--- node 2
    | ^   SNAT
    | |   --->
    v |
 endpoint
 类似资料:
  • 我在跟踪http://jayatiatblogs.blogspot.com/2011/11/storm-installation.html 我的主节点10.0.0.185。我的从节点10.0.0.79,10.0.0.124 下面是我的动物园。我的从属节点的cfg: 下面是我的Storm。我的从属节点的yaml: 下面是暴风雨。我的主节点的yaml: 我在所有从属节点中启动zookeeper,然后在

  • 因为每个 Disque 节点都会将自己的配置信息储存在 disque-server 运行的文件夹里面, 而同一个文件夹只能有一份这样的配置信息, 所以如果我们打算同时运行多个节点, 那么就必须在不同的文件夹里面运行 disque-server , 并为每个节点指定不同的端口。 假设我们现在打算运行三个 Disque 节点, 那么首先要做的就是创建三个文件夹, 然后分别在这些文件夹里面运行 disq

  • 并编写下面的查询,它是只在我的master上运行,还是将所有10个节点都用作worker? 如果不是,我必须做什么才能让我的Spark Sql使用完整的集群?

  • 从本文来看,默认情况下,工作节点使用该节点的所有内存(减去1 GB)。但是我明白,通过使用,我们可以使用更少的内存。例如,如果节点的总内存为32 GB,但我指定为16 GB,那么Spark worker在该节点上使用的内存不会超过16 GB? 但是执行人呢?假设我希望每个节点运行2个执行器,那么可以通过在期间将执行器内存指定为的一半来实现吗?如果我希望每个节点运行4个执行器,可以通过将执行器内存指

  • 问题内容: 我尝试在Google Container Engine的群集节点上安装ElasticSearch(最新版本),但是ElasticSearch需要变量:>> 262144。 如果我ssh到每个节点并手动运行: 一切正常,但是任何新节点将没有指定的配置。 所以我的问题是: 有没有办法在引导时在每个节点上加载系统配置?Deamon Set并不是一个好的解决方案,因为在Docker容器中,系统

  • 问题内容: 我想为一个聊天室应用程序创建一个node.js服务器集群,以支持高并发性。我需要能够在所有节点之间共享信息。我试图找出使所有服务器保持同步的最佳方法。我希望在共享对象中具有尽可能大的灵活性,因为我计划在将来添加更多功能。 到目前为止,我想到了两种解决方案: 订阅NoSQL密钥(例如redis publish-subscribe) 节点使用套接字彼此更新。 哪个更好?还有其他想法吗? 问

  • 我正试图在hadoop中设置多节点集群,如何将0个数据阳极作为活动数据阳极,而我的hdfs显示了0个字节的分配 但是nodemanager后台进程正在datanodes上运行 `

  • 网络节点 服务基本没变动,除了 L3 服务需要配置为 dvr_snat 模式。 命名空间上会多一个专门的 snat-xxx 命名空间,处理来自计算节点的无 floating IP 的南北向流量。