<p>I am able to create an EKS cluster but when I try to add nodegroups, I receive a &quot;Create failed&quot; error with details:
&quot;NodeCreationFailure&quot;: Instances failed to join the kubernetes cluster</p>
<p>I tried a variety of instance types and increasing larger volume sizes (60gb) w/o luck.
Looking at the EC2 instances, I only see the below problem. However, it is difficult to do anything since i'm not directly launching the EC2 instances (the EKS NodeGroup UI Wizard is doing that.)</p>
<p>How would one move forward given the failure happens even before I can jump into the ec2 machines and &quot;fix&quot; them?</p>
<blockquote>
<p>Amazon Linux 2</p>
<blockquote>
<p>Kernel 4.14.198-152.320.amzn2.x86_64 on an x86_64</p>
<p>ip-187-187-187-175 login: [   54.474668] cloud-init[3182]: One of the
configured repositories failed (Unknown),
[   54.475887] cloud-init[3182]: and yum doesn't have enough cached
data to continue. At this point the only
[   54.478096] cloud-init[3182]: safe thing yum can do is fail. There
are a few ways to work &quot;fix&quot; this:
[   54.480183] cloud-init[3182]: 1. Contact the upstream for the
repository and get them to fix the problem.
[   54.483514] cloud-init[3182]: 2. Reconfigure the baseurl/etc. for
the repository, to point to a working
[   54.485198] cloud-init[3182]: upstream. This is most often useful
if you are using a newer
[   54.486906] cloud-init[3182]: distribution release than is
supported by the repository (and the
[   54.488316] cloud-init[3182]: packages for the previous
distribution release still work).
[   54.489660] cloud-init[3182]: 3. Run the command with the
repository temporarily disabled
[   54.491045] cloud-init[3182]: yum --disablerepo= ...
[   54.491285] cloud-init[3182]: 4. Disable the repository
permanently, so yum won't use it by default. Yum
[   54.493407] cloud-init[3182]: will then just ignore the repository
until you permanently enable it
[   54.495740] cloud-init[3182]: again or use --enablerepo for
temporary usage:
[   54.495996] cloud-init[3182]: yum-config-manager --disable </p>
</blockquote>
</blockquote>

CoderOfTheNight
<p>In my case, the problem was that I was deploying my node group in a private subnet, but this private subnet had no NAT gateway associated, hence no internet access. What I did was:</p>
<ol>
<li><p>Create a NAT gateway</p>
</li>
<li><p>Create a new routetable with the following routes (the second one is the internet access route, through nat):</p>
</li>
</ol>
<ul>
<li>Destination: VPC-CIDR-block Target: local</li>
<li><strong>Destination: 0.0.0.0/0 Target: NAT-gateway-id</strong></li>
</ul>
<ol start="3">
<li>Associate private subnet with the routetable created in the second-step.</li>
</ol>
<p>After that, nodegroups joined the clusters without problem.</p>
