<p>According to the <a href="https://minikube.sigs.k8s.io/docs/handbook/config/" rel="nofollow noreferrer">minikube handbook</a> the configuration commands are used to &quot;Configure your cluster&quot;. But what does that mean?</p>
<p>If I set cpus and memory then are these the max values the cluster as a whole can ever consume?</p>
<p>Are these the values it will reserve on the host machine in preparation for use?</p>
<p>Are these the values that are handed to the control plane container/VM and now I have to specify more resources when making a worker node?</p>
<p>What if I want to add another machine (VM or bare metal) and add its resources in the form of a worker node to the cluster? From the looks of it I would have to delete that cluster, change the configuration, then start a new cluster with the new configuration. That doesn't seem scalable.</p>
<p>Thanks for the help in advance.</p>

<p>Answering the question:</p>
<blockquote>
<p>If I set cpus and memory then are these the max values the cluster as a whole can ever consume?</p>
</blockquote>
<p>In short. It will be a limit for the whole resource (either a <code>VM</code>, a container, etc. depending on a <code>--driver</code> used). It will be used for the underlying OS, Kubernetes components and the workload that you are trying to run on it.</p>
<blockquote>
<p>Are these the values it will reserve on the host machine in preparation for use?</p>
</blockquote>
<p>I'd reckon this would be related to the <code>--driver</code> you are using and how its handling the resources. I personally doubt it's reserving the 100% of <code>CPU</code> and <code>memory</code> you've passed in the <code>$ minikube start</code> and I'm more inclined to the idea that it uses how much it needs during specific operations.</p>
<blockquote>
<p>Are these the values that are handed to the control plane container/VM and now I have to specify more resources when making a worker node?</p>
</blockquote>
<p>By default, when you create a <code>minikube</code> instance with: <code>$ minikube start ...</code> you will create a single node cluster capable of being a <code>control-plane</code> node and a <code>worker</code> node simultaneously. You will be able to run your workloads (like an <code>nginx-deployment</code> without adding additional node).</p>
<p>You can add a node to your <code>minikube</code> ecosystem with just: <code>$ minikube node add</code>. This will make another node marked as a <code>worker</code> (with no <code>control-plane</code> components). You can read more about it here:</p>
<ul>
<li><em><a href="https://minikube.sigs.k8s.io/docs/tutorials/multi_node/" rel="nofollow noreferrer">Minikube.sigs.k8s.io: Docs: Tutorials: Multi node</a></em></li>
</ul>
<blockquote>
<p>What if I want to add another machine (VM or bare metal) and add its resources in the form of a worker node to the cluster? From the looks of it I would have to delete that cluster, change the configuration, then start a new cluster with the new configuration. That doesn't seem scalable.</p>
</blockquote>
<p>As said previously, you don't need to delete the <code>minikube</code> cluster to add another node. You can run <code>$ minikube node add</code> to add a node on a <code>minikube</code> host. There are also options to <code>delete</code>/<code>stop</code>/<code>start</code> nodes.</p>
<p><strong>Personally</strong> speaking if the workload that you are trying to run requires multiple nodes, I would try to consider other Kubernetes cluster built on top/with:</p>
<ul>
<li><code>Kubeadm</code></li>
<li><code>Kubespray</code></li>
<li><code>Microk8s</code></li>
</ul>
<p>This would allow you to have more flexibility on where you want to create your Kubernetes cluster (as far as I know, <code>minikube</code> works within a single host (like your laptop for example)).</p>
<blockquote>
<p>A side note!</p>
<p>There is an answer (written more than 2 years ago) which shows the way to add a Kubernetes cluster node to a <code>minikube</code> here :</p>
<ul>
<li><em><a href="https://stackoverflow.com/a/51706547/12257134">Stackoverflow.com: Answer: How do I get the minikube nodes in a local cluster
</a></em></li>
</ul>
</blockquote>
<hr />
<p>Additional resources:</p>
<ul>
<li><em><a href="https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/" rel="nofollow noreferrer">Kubernetes.io: Docs: Setup: Production environment: Tools: Kubeadm: Create cluster kubeadm</a></em></li>
<li><em><a href="https://github.com/kubernetes-sigs/kubespray" rel="nofollow noreferrer">Github.com: Kubernetes sigs: Kubespray</a></em></li>
<li><em><a href="https://microk8s.io/" rel="nofollow noreferrer">Microk8s.io</a></em></li>
</ul>
