<p>All kubernetes forums and articles ask to work with minikube that gives you only a single-node kubernetes cluster. </p>

<p>What options are available to work with multi node kubernetes cluster on a Windows environment?. </p>

<p>The problem is that Windows node may only act as a <a href="https://kubernetes.io/docs/setup/production-environment/windows/user-guide-windows-nodes/" rel="nofollow noreferrer">worker node</a>. 
You can only create a hybrid cluster and have Windows workloads running in Windows pods, talking to Linux workloads running in Linux pods.</p>

<p><a href="https://kubernetes.io/docs/setup/production-environment/windows/intro-windows-in-kubernetes/" rel="nofollow noreferrer">Intro to Windows support in Kubernetes</a>:</p>

<p><code>The Kubernetes control plane, including the master components, continues to run on Linux. There are no plans to have a Windows-only Kubernetes cluster</code>.</p>

<p>Full list of limitations can be found in <a href="https://kubernetes.io/docs/setup/production-environment/windows/intro-windows-in-kubernetes/#limitations" rel="nofollow noreferrer">official docs</a></p>

<p><a href="https://kubernetes.io/docs/setup/production-environment/windows/intro-windows-in-kubernetes/#limitations" rel="nofollow noreferrer">Control Plane limitations</a>: </p>

<blockquote>
  <p>Windows is only supported as a worker node in the Kubernetes
  architecture and component matrix. This means that a Kubernetes
  cluster must always include Linux master nodes, zero or more Linux
  worker nodes, and zero or more Windows worker nodes.</p>
</blockquote>

<p><a href="https://kubernetes.io/docs/setup/production-environment/windows/intro-windows-in-kubernetes/#resource-management-and-process-isolation" rel="nofollow noreferrer">Resource management and process isolation</a>:</p>

<blockquote>
  <p>Linux cgroups are used as a pod boundary for resource controls in
  Linux. Containers are created within that boundary for network,
  process and file system isolation. The cgroups APIs can be used to
  gather cpu/io/memory stats. In contrast, Windows uses a Job object per
  container with a system namespace filter to contain all processes in a
  container and provide logical isolation from the host. There is no way
  to run a Windows container without the namespace filtering in place.
  This means that system privileges cannot be asserted in the context of
  the host, and thus privileged containers are not available on Windows.
  Containers cannot assume an identity from the host because the
  Security Account Manager (SAM) is separate.</p>
</blockquote>
