Kubernetes 节点间通信

Chr*_*sih 5 kubernetes

我试图了解 Kubernetes 设计的工作节点如何/是否相互通信。我在node-master 通信上找到了文档,但在 node-node 上没有找到。我已经明白,即使 pod 位于不同的节点上,它们也可以进行通信,除非 aNetworkPolicy阻止了这种情况。我想知道主从架构中的信息流是严格在工作节点和主节点之间还是工作节点之间。

问题 1:worker 节点是相互通信还是只发生在 pod 之间?或者更确切地说,即使它们的 pod 不通信,节点也能通信吗?

问题 2:假设我们有 2 个工作节点,并且我们将 ssh:ed 连接到其中一个节点,关于另一个节点或主节点的哪些信息可用?

谢谢!

sta*_*cks 4

工作节点之间是相互通信还是仅在 Pod 之间进行通信?或者更确切地说,即使它们的 pod 不通信,节点也会通信吗?

工作节点代表几个进程的集合:kubeletkube-proxy和容器运行时(docker 或 rkt)。如果通过通信您指的是在 P2P 系统中共享节点状态、健康状况等,那么就不会

Pod 与 Pod(或服务)通信,节点也能够到达 Pod 和服务 IP 地址(此路由通过kube-proxy使用处理iptables)和覆盖网络。

然而,实际上,kubernetes 依赖分布式 KV 存储etcd来保存系统关键信息。etcd可以部署在与需要节点到节点通信的工作进程相同的节点上。

假设我们有 2 个工作节点,并且我们已经 ssh:ed 进入其中一个节点,那么关于另一个节点或主节点的哪些信息是可用的?

没有保留有关其他工作节点或主节点的信息。
您可以从配置文件中收集一些信息kubelet,或者在日志中查看与主节点(apiserver特别是组件)的连接活动kubelet


一般来说,主节点运行一个apiserverpod,它是 kubernetes 集群状态(存储在 )的访问点etcd。Podkubectl等使用apiserver来获取所需的信息。