我有一个名为cluster-main的 EKS 集群 (AWS)正在运行
- Kubernetes 版本: 1.16
- 平台版本: eks.4
- CNI版本v1.6.1
集群中有两个节点组
集群名称 | 实例类型 | AMI 类型 |
---|---|---|
通用节点组 | t3a.中 | AL2_x86_64 |
内存节点组 | r5a.大 | AL2_x86_64 |
这些组中的节点工作正常。
我正在尝试添加一个由 ARM 实例组成的新节点组
集群名称 | 实例类型 | AMI 类型 |
---|---|---|
CPU 节点组 | c6g.xlarge | AL2_ARM_64 |
但是,由于以下问题,该组的节点卡在Not Ready
状态,无法创建节点组
Conditions:
类型 | 地位 | 上次心跳时间 | 上次转换时间 | 原因 | 信息 |
---|---|---|---|---|---|
准备好 | 错误的 | 2021 年 5 月 31 日星期一 08:40:22 -0400 | 2021 年 5 月 31 日星期一 08:38:21 -0400 | Kubelet 未就绪 | 运行时网络未准备好:NetworkReady=false 原因:NetworkPluginNotReady 消息:docker:网络插件未准备好:cni 配置未初始化 |
- 所有节点组都有节点 IAM 角色 ARN
- 所有节点组都是 AWS 托管组。
- 所有节点组都部署在两个特定子网(私有)下
当我通过 SSH 连接到 EC2 实例时,我得到以下日志/var/log/message
1430 cni.go:237] Unable to update cni config: no networks found in /etc/cni/net.d
1430 kubelet.go:2193] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
我已经确认/etc/cni/net.d
目录确实是空的
我有另一个具有类似特征的 EKS 集群,其中 ARM 节点组已初始化,没有任何问题。但是,我发现了两个不同之处。测试集群使用:
- 平台版本: eks.5
- CNI 版本 1.7.5
- amazon-k8s-cni-init:v1.7.5-eksbuild.1
- amazon-k8s-cni:v1.7.5-eksbuild.1
有任何想法吗?
好的 - 正如@thomas 所说,这个问题与 EKS 插件有关。
就上下文而言,正如我在评论中所说,集群最初是在 1.14 版本中创建的,后来升级到 1.16。
但是,从未升级过
aws-node
、、kube-proxy
和coredns
附加组件。按照此处的说明进行操作,但问题仍然存在。我确实注意到的
aws-node
是仍在使用相同的 CNI 图像(v1.6.3)经过进一步调查,我不得不按照此处的说明手动升级 CNI 版本
最后,我注意到
aws-node
为我的节点创建了一个 podarm64
- 以前它没有。但是,对 pod 的活跃度探测失败了,节点仍然卡在NotReady
状态。因此,我必须按照本指南kube-proxy
的步骤 (3) 中的说明编辑守护程序集的配置。