<p>I'm trying to understand the Kubernetes design on how/if worker nodes communicate with each other. I found documentation on the <a href="https://kubernetes.io/docs/concepts/architecture/master-node-communication/" rel="noreferrer">node-master communication</a> but nothing on node-node. I've understood that pods can communicate even if they are on different nodes unless a <code>NetworkPolicy</code> prevents this. What I'm wondering is if the information flow in the master-slave architecture is strictly between worker node and master or also between worker nodes.</p>

<p><strong>Question 1</strong>: Do worker nodes communicate with each other or does that only occur between pods? Or rather, do the nodes communicate even if their pods do not?</p>

<p><strong>Question 2</strong>: Say we have 2 worker nodes and that we have ssh:ed into one of the nodes, what information would be available about the other node or the master? </p>

<p>Thanks!</p>

<blockquote>
  <p>Do worker nodes communicate with each other or does that only occur
  between pods? Or rather, do the nodes communicate even if their pods
  do not?</p>
</blockquote>

<p>A worker node represents a collection of a few processes: <code>kubelet</code>, <code>kube-proxy</code>, and a container runtime (docker or rkt). If by communicate you are referring to sharing node state, health etc. as in a P2P system then <strong>no</strong>.  </p>

<p>Pods communicate with pods (or services) and nodes are also able to reach pod and service ip addresses (this routing is handled by <code>kube-proxy</code> using <code>iptables</code>) and overlay networking.</p>

<p>However, in practice kubernetes relies on distributed KV store <code>etcd</code> for keeping system critical information. <code>etcd</code> may be deployed on the same nodes as the worker processes which requires node to node communication.
<br></p>

<blockquote>
  <p>Say we have 2 worker nodes and that we have ssh:ed into
  one of the nodes, what information would be available about the other
  node or the master?</p>
</blockquote>

<p>There is no information kept about the other worker node or master node.<br>
You could glean some information from the <code>kubelet</code> config files or see connection activity to the master node (<code>apiserver</code> component specifically) in the <code>kubelet</code> logs.  </p>

<hr>

<p>In general, the master node(s) run an <code>apiserver</code> pod which is the access point to the kubernetes cluster state (stored in <code>etcd</code>). Pods, <code>kubectl</code>, etc. use the <code>apiserver</code> to get information as required.</p>
