<p>I updated my Azure AKS nodepool size from within the Azure Portal to go from 2 to 4 nodes. When I run <code>az aks nodepool show ...</code>, I see that the count has correctly been updated. However, when I run <code>kubectl get nodes</code>, I still only see the two nodes that previously existed.</p>
<p>According to <a href="https://kubernetes.io/docs/concepts/architecture/nodes/#management" rel="nofollow noreferrer">the Kubernetes documentation on node management</a>,</p>
<blockquote>
<p>There are two main ways to have Nodes added to the API server :</p>
<ol>
<li><strong>The kubelet on a node self-registers to the control plane</strong></li>
<li>You, or another human user, manually add a Node object</li>
</ol>
</blockquote>
<p>(Emphasis mine)</p>
<p>My expectation, therefore, is that having scaled up my node pool, these new nodes should automatically register, and <code>kubectl get nodes</code> should just pick them up, but this appears to not be the case.</p>
<p>Now that my nodepool has more nodes, how do I get my AKS cluster to recognize and utilize them? Once <code>kubectl get nodes</code> shows them, will applying an updated manifest (with more replicas) be all I need to do to use the additional hardware?</p>

<p>It's difficult to see without access to your setup. But you can see:</p>
<ul>
<li>Check that the control plane hasn't been automatically upgraded to a new version that is incompatible with the kubelet version in your nodepool when it registers with the cluster. (Best if the versions match)</li>
<li>Connect to the nodes that are not registering (ssh) and check the logs as to why the <a href="https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/#:%7E:text=Synopsis,object%20that%20describes%20a%20pod." rel="nofollow noreferrer">kubelet</a> is not starting. i.e <code>systectl status kubelet</code>.</li>
<li>Check that you can connect to the port (i.e <code>8443</code>) and IP address where your <a href="https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/" rel="nofollow noreferrer">kube-apiserver</a> is listening on from these nodes that are not registering. i.e <code>curl &lt;ip-address&gt;:8443</code></li>
</ul>
<p>Possible solution:</p>
<ul>
<li>Upgrade the VM image of your node pool to use one compatible with the control plane.</li>
<li>Remove firewall rule preventing your nodes accessing the kube-apiserver</li>
</ul>
<blockquote>
<p>will applying an updated manifest (with more replicas) be all I need to do to use the additional hardware?</p>
</blockquote>
<p>Should work.</p>
<p>✌️</p>
