<p>Today I have deployed AKS service in Azure cloud and tried to start test services on it, however faced an error that Ingress pod stuck in <code>Pending</code> state because of the following:</p>

<blockquote>
  <p>0/2 nodes are available: 2 node(s) didn't match node selector.</p>
</blockquote>

<p>I have checked nodeSelector for Nginx ingress:</p>

<pre><code>  nodeSelector:
    kubernetes.io/os: linux
</code></pre>

<p>To fix the issue I have removed nodeSelector from deployment and now everything work as expected.</p>

<p>Below evidence that I'm using correct OS on my Kubernetes nodes:</p>

<p><a href="https://i.stack.imgur.com/s1DEI.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/s1DEI.png" alt="enter image description here"></a></p>

<p>Ingress version is <a href="https://github.com/kubernetes/ingress-nginx/releases" rel="nofollow noreferrer">0.26.1</a> - deployed using <a href="https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml" rel="nofollow noreferrer">manifests from github</a>. </p>

<p>So, it is clear how to fix the issue, but what is a root cause here? Is it bug or knowledge gap?</p>

<p>I think it would be a better solution to have labeled the nodes:</p>

<p><code>kubectl label node --all kubernetes.io/os=linux</code></p>
