我正在尝试了解Kubernetes关于工作节点如何相互通信的设计。我在node-master communication上找到了文档,但节点节点上没有。我已经知道,即使它们位于不同的节点上,pod也可以进行通信,除非NetworkPolicy
阻止了这一点。我想知道的是,主从架构中的信息流是严格地在工作节点和主节点之间,还是在工作节点之间。
问题1 :工作节点是否相互通信,或者仅在pod之间进行通信?或者更确切地说,节点是否进行通信,即使它们的pod没有?
问题2 :假设我们有2个工作节点,并且我们有ssh:ed到其中一个节点,哪些信息可用于其他节点或主节点?
谢谢!
答案 0 :(得分:2)
工作节点是否相互通信或仅发生这种情况 豆荚之间?或者更确切地说,即使他们的pod,节点也会进行通信 不是吗?
工作节点表示几个进程的集合:kubelet
,kube-proxy
和容器运行时(docker或rkt)。如果通过通信,您指的是在P2P系统中共享节点状态,健康状况等,那么否。
Pod与pod(或服务)通信,节点也能够访问pod和服务ip地址(此路由由kube-proxy
使用iptables
处理)和覆盖网络。
然而,在实践中,kubernetes依靠分布式KV存储etcd
来保存系统关键信息。 etcd
可以部署在与需要节点到节点通信的工作进程相同的节点上。
假设我们有2个工作节点,并且我们有ssh:ed into 其中一个节点,有关另一个节点的信息 节点还是主人?
没有关于其他工作节点或主节点的信息
您可以从kubelet
配置文件中收集一些信息,或者在apiserver
日志中查看与主节点(具体为kubelet
组件)的连接活动。
通常,主节点运行apiserver
pod,它是kubernetes群集状态的访问点(存储在etcd
中)。 Pod kubectl
等使用apiserver
获取所需信息。
答案 1 :(得分:0)
我之前记录了two pods within the same node can communicate directly。
但是在节点之间,您需要使用kube-proxy和网络过滤器通过路由器/网关。
在" how is cluster IP in kubernetes-aws configured?"。
在这两种情况下,主人都没有明确参与或引用。