<p>I've created an <code>EKS</code> cluster using <a href="https://registry.terraform.io/modules/terraform-aws-modules/eks/aws/latest" rel="nofollow noreferrer">this terraform module</a>:</p>
<pre><code>module &quot;eks&quot; {
  ...
  worker_groups = [
    {
      name                          = &quot;worker-group-1&quot;
      instance_type                 = &quot;t2.small&quot;
      asg_desired_capacity          = 2
    }
  ]
}
</code></pre>
<p>As you can see, It creates a worker group of <code>t2.small</code> <code>EC2</code> instances. <code>t2.small</code> instances are <code>EBS-backed</code> and have <code>20 GiB</code> of <code>EBS</code> volume by default. What happens when one of these nodes, consumes all of it's allocated <code>EBS</code> volume?</p>
<ul>
<li>Does the <code>cluster autoscaler</code> (which is enabled in my <code>EKS</code> cluster)
create a new worker node?</li>
<li>Or, Does the allocated <code>EBS</code> volume get increased?</li>
</ul>
<p>If none of the above scenarios happens, How should I deal with it in my cluster? What's the best approach?</p>

<blockquote>
<p>What happens when one of these nodes, consumes all of it's allocated
<code>EBS</code> volume?</p>
</blockquote>
<ul>
<li>The node reports a condition when a compute resource is under pressure. The scheduler views that condition as a signal to dissuade placing additional pods on the node. In this case, the Node Condition would be <code>DiskPressure</code> which means that no new Pods are scheduled to the node. You can find more details regarding that topic by checking <a href="https://kubernetes.io/docs/tasks/administer-cluster/out-of-resource/" rel="nofollow noreferrer">Configure Out of Resource Handling</a> docs.</li>
</ul>
<blockquote>
<p>Does the cluster autoscaler (which is enabled in my EKS cluster)
create a new worker node? Or, Does the allocated EBS volume get increased?</p>
</blockquote>
<ul>
<li>The autoscaler checks the cluster for pods that cannot be scheduled on any existing nodes because of inadequate CPU or memory resources or because the pod’s node affinity rules or taint tolerations do not match an existing node. If the cluster has unschedulable pods, the autoscaler will check its managed node pools to decide if adding a node would unblock the pod. If so, it will add a node if the node pool can be increased in size. All the specifics of AWS implementation of the Cluster Autoscaler can be found <a href="https://docs.aws.amazon.com/eks/latest/userguide/cluster-autoscaler.html" rel="nofollow noreferrer">here</a>.</li>
</ul>
