Skip to content

Node in EKS Cluster has status Unknown

0

Hi everyone,

I'm facing an issue where one of the nodes in my EKS cluster has been marked as Unreachable, and it's showing a taint: {node.kubernetes.io/unreachable: }. This is causing some of my pods to be evicted or not scheduled correctly.

Here’s a quick overview of the situation:

  • The node is in the NotReady state.
  • The taint node.kubernetes.io/unreachable: is applied to the node.
  • I’ve verified that the underlying EC2 instance is running and the health checks have passed.
  • In the AWS I see the node status as Unknown.
  • The CPU and memory usage on the node are well below the resource limits, so it's not a resource exhaustion issue.

Has anyone experienced a similar issue in EKS? How can I further troubleshoot this? Specifically:

  • Are there known issues with kubelet communication in EKS?
  • What logs or error messages should I look for to identify the root cause?

Other info:

  • Kubernetes version: 1.32
  • Instance type: m6i.xlarge
  • CoreDNS version: v1.11.4-eksbuild.2
  • Kube proxy version: v1.32.0-eksbuild.2
  • Amazon VPC CNI version: v1.19.2-eksbuild.5

asked a year ago2.2K views

2 Answers
0

same issue facing

answered a year ago

  • can you describe the nodes .. kubectl describe node <node-name> ....... this will give you more insight to what is happening

0

When a node in an Amazon EKS cluster shows a status of Unknown, it typically indicates that the Kubernetes control plane has lost communication with the node. This can happen due to various reasons, and there are several steps you can take to troubleshoot the issue:

  1. Check node connectivity:

    • Ensure that the node can reach the EKS control plane endpoint. Network issues, security group configurations, or VPC settings could be preventing communication.
    • Verify that the necessary ports are open between the node and the control plane.
  2. Investigate kubelet status:

    • SSH into the problematic node and check the kubelet service status using the command: systemctl status kubelet
    • Review kubelet logs for any error messages or indications of why it might not be communicating with the control plane.
  3. Examine node conditions:

    • Use kubectl describe node <node-name> to get detailed information about the node's status and conditions.
    • Look for any specific error messages or conditions that might explain the Unknown status.
  4. Check AWS-specific components:

    • Ensure that the node has the correct IAM role and permissions to communicate with other AWS services.
    • Verify that the AWS VPC CNI plugin is functioning correctly, as networking issues can cause node communication problems.
  5. Investigate system resources:

    • Although you mentioned that CPU and memory usage are below limits, check for any disk space issues or other resource constraints that might be affecting the node's ability to function properly.
  6. Review recent changes:

    • If this issue started recently, consider any recent changes to your cluster configuration, security groups, or network settings that might have impacted node communication.
  7. Check for known issues:

    • Review the EKS documentation and release notes for any known issues with your specific Kubernetes version or AWS components that might be related to node communication problems.
  8. Gather additional logs:

    • Collect logs from key system components such as Docker (or containerd), kubelet, and kube-proxy for further analysis.

If after these steps you're still unable to determine the root cause, you may need to consider the following actions:

  • Drain the node and terminate it, allowing a new node to be provisioned in its place.
  • If the issue persists across multiple nodes, it may indicate a broader cluster or networking problem that requires further investigation with AWS support.

Remember that in some cases of network disconnections, pods on unreachable nodes may not be immediately evicted, as the Kubernetes control plane has mechanisms to handle temporary disruptions. However, if the issue persists, you'll need to take action to ensure your cluster's health and functionality.
Sources
Kubernetes pod failover through network disconnections - Amazon EKS
Troubleshooting hybrid nodes - Amazon EKS
View the health status of your nodes - Amazon EKS

answered a year ago

EXPERT

reviewed a year ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.