<p>I have this mixed cluster which shows all the nodes as Ready (both Windows &amp; Linux ones). However, only the Linux nodes have aws-node &amp; kube-proxy pods. I RDPed into a Windows node and can see a kube-proxy service.</p>
<p>My question remains: do the Windows nodes need aws-node &amp; kube-proxy pods in the kube-system namespace or do they work differently than Linux ones?</p>

<p><code>kube-proxy</code> pods are part of default installation of Kubernetes. They are automaticaly created, and are needed on both Linux and Windows.</p>
<blockquote>
<p>kube-proxy is a network proxy that runs on each node in your cluster, implementing part of the Kubernetes Service concept.</p>
<p>kube-proxy maintains network rules on nodes. These network rules allow network communication to your Pods from network sessions inside or outside of your cluster.
<sup>[<a href="https://kubernetes.io/docs/concepts/overview/components/#kube-proxy" rel="nofollow noreferrer">source</a>]</sup></p>
</blockquote>
<p><code>aws-node</code> pod is a part of AWS CNI plugin for Kubernetes</p>
<blockquote>
<p>The Amazon VPC Container Network Interface (CNI) plugin for Kubernetes is deployed with each of your Amazon EC2 nodes in a Daemonset with the name <code>aws-node</code>. The plugin consists of two primary components:<br />
<em>[...]</em>
<sup>[<a href="https://docs.aws.amazon.com/eks/latest/userguide/pod-networking.html" rel="nofollow noreferrer">source</a>]</sup></p>
</blockquote>
<p>It is currently only supported on Linux. Windows nodes are using a different CNI plugin - <a href="https://github.com/aws/amazon-vpc-cni-plugins/tree/master/plugins/vpc-shared-eni" rel="nofollow noreferrer">vpc-shared-eni</a></p>
