<p>So I've been struggling with the fact that I'm unable to expose any deployment in my eks cluster.</p>
<p>I got down to this:</p>
<ol>
<li>My LoadBalancer service public IP never responds</li>
<li>Went to the load balancer section in my aws console</li>
<li>Load balancer is no working because my cluster node is not passing the heath checks</li>
<li>SSHd to my cluster node and found out that containers do not have ports associated to them:</li>
</ol>
<p><a href="https://i.stack.imgur.com/at4ma.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/at4ma.png" alt="enter image description here" /></a></p>
<p>This makes the cluster node fail the health checks, so no traffic is forwarded that way.</p>
<p><a href="https://i.stack.imgur.com/hFp1C.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/hFp1C.png" alt="enter image description here" /></a></p>
<p>I tried running a simple nginx container manually, without kubectl directly in my cluster node:</p>
<pre><code>docker run -p 80:80 nginx
</code></pre>
<p>and pasting the node public IP in my browser. No luck:</p>
<p><a href="https://i.stack.imgur.com/wO0HG.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/wO0HG.png" alt="enter image description here" /></a></p>
<p>then I tried curling to the nginx container directly from the cluster node via ssh:</p>
<pre><code> curl localhost
</code></pre>
<p>And I'm getting this response: &quot;curl: (7) Failed to connect to localhost port 80: Connection refused&quot;</p>
<ul>
<li>Why are containers in the cluster node not showing ports?</li>
<li>How can I make the cluster node pass the load balancer health checks?</li>
<li>Could it have something to do with the fact that I created a single node cluster with eksctl?</li>
<li>What other options do I have to easily run a kubernetes cluster in AWS?</li>
</ul>

<p>This is something in the middle between answer and question, but I hope it will help you.</p>
<p>Im using <a href="https://logz.io/blog/amazon-eks-cluster/" rel="nofollow noreferrer">Deploying a Kubernetes Cluster with Amazon EKS</a> guide for years when it comes to create EKS cluster.</p>
<p>For test purposes, I just spinned up new cluster and it works as expected, including  accessing test application using external LB ip and passing health checks...</p>
<p>In short you need:</p>
<p><strong>1.</strong> create EKS role</p>
<p><strong>2.</strong> create VPC to use in EKS</p>
<p><strong>3.</strong> create stack (Cloudformation) from <a href="https://amazon-eks.s3-us-west-2.amazonaws.com/cloudformation/2019-01-09/amazon-eks-vpc-sample.yaml" rel="nofollow noreferrer">https://amazon-eks.s3-us-west-2.amazonaws.com/cloudformation/2019-01-09/amazon-eks-vpc-sample.yaml</a></p>
<p><strong>4.</strong> Export variables to simplify further cli command usage</p>
<pre><code>export EKS_CLUSTER_REGION=
export EKS_CLUSTER_NAME=
export EKS_ROLE_ARN=
export EKS_SUBNETS_ID=
export EKS_SECURITY_GROUP_ID=
</code></pre>
<p><strong>5.</strong> Create cluster, verify its creation and generating appropriate config.</p>
<pre><code>#Create
aws eks --region ${EKS_CLUSTER_REGION} create-cluster --name ${EKS_CLUSTER_NAME} --role-arn ${EKS_ROLE_ARN} --resources-vpc-config subnetIds=${EKS_SUBNETS_ID},securityGroupIds=${EKS_SECURITY_GROUP_ID}

#Verify
watch aws eks --region ${EKS_CLUSTER_REGION} describe-cluster --name ${EKS_CLUSTER_NAME} --query cluster.status

#Create .kube/config entry
aws eks --region ${EKS_CLUSTER_REGION} update-kubeconfig --name ${EKS_CLUSTER_NAME}
</code></pre>
<p>Can you please check article and confirm you havent missed any steps during installation?</p>
