EKS:kubernetes 集群中的不健康节点

Posted

技术标签:

【中文标题】EKS:kubernetes 集群中的不健康节点【英文标题】:EKS: Unhealthy nodes in the kubernetes cluster 【发布时间】:2021-04-12 23:02:33 【问题描述】:

使用 terraform 在 AWS EKS 上预置节点组时出现错误。 错误:等待创建 EKS 节点组 (xxx) 时出错:NodeCreationFailure: Unhealthy nodes in the kubernetes cluster.

然后我去控制台检查了节点。有消息“runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker network plugin is not ready: cni config uninitialized”

我有 5 个私有子网并通过 NAT 连接到 Internet。

有人能给我一些关于如何调试的提示吗?

这里有一些关于我的环境的细节。

Kubernetes version: 1.18
Platform version: eks.3
AMI type: AL2_x86_64
AMI release version: 1.18.9-20201211
Instance types: m5.xlarge

集群中设置了三个工作负载。

coredns, STATUS (2 Desired, 0 Available, 0 Ready)
aws-node STATUS (5 Desired, 5 Scheduled, 0 Available, 0 Ready) 
kube-proxy STATUS (5 Desired, 5 Scheduled, 5 Available, 5 Ready)

进入coredns,两个pod都处于挂起状态,条件有“Available=False, Deployment does not have minimum availability”“Progress=False, ReplicaSet xxx has timed out progressing” 进入aws-node中的pod之一,状态显示“Waiting - CrashLoopBackOff”

【问题讨论】:

您使用的是哪个 pod 网络插件?是否安装正确? 我使用的是默认 AWS 网络,即 Amazon VPC CNI。 请看一下这个问题network is not ready: [runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady。 我也面临同样的问题。如果你能详细说明你是如何解决它的,并将它作为这个问题的答案发布,那对我和其他有同样问题的人会很有帮助。 我遇到的问题与节点角色的权限有关。在我的组织中,我们为每个角色附加了权限边界。我已将这四个策略分配给节点角色 AmazonEKSWorkerNodePolicy、AmazonEKS_CNI_Policy、AmazonEC2ContainerRegistryReadOnly、CloudWatchAgentServerPolicy。我发现一些操作被排除在权限边界之外。更新权限边界后,节点不健康问题消失了。 【参考方案1】:

添加 pod 网络插件

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/2140ac876ef134e0ed5af15c65e414cf26827915/Documentation/kube-flannel.yml

【讨论】:

以上是关于EKS:kubernetes 集群中的不健康节点的主要内容,如果未能解决你的问题,请参考以下文章

kubernetes关于eks一次异常问题的复盘

kubernetes关于eks一次异常问题的复盘

NodeCreationFailure-> kubernetes 集群中不健康的节点

如何根据 EKS 中的平均内存使用量自动扩展 Kubernetes Pod?

AWS 中的 Kubernetes 自动缩放

Terraform EKS 配置图被禁止