我们正在使用几个应用程序将 EKS 集群从 1.24 升级到 1.25。
配置新工作节点时,新节点立即处于 NotReady 状态并出现错误 (aws-node pod)
failed to connect service :50051
挖掘了一下,它似乎与 EKS 的 CNI 插件有关(当时我们还没有安装它)。我们按照docs安装了它,并且节点按预期启动了。
过了一会儿,我们注意到节点正在重新启动,即开始重置的节点是持有 filebeat 的节点,并出现以下错误
instance/beat.go:1015 Exiting: error in autodiscover provider settings:
error setting up kubernetes autodiscover provider:
couldn't discover kubernetes node due to error kubernetes:
Node could not be discovered with any known method. Consider setting env var NODE_NAME
即使很严重,错误也建议修复,这似乎在这里提到过,GitHub问题上的讨论让我想到这可能与CNI本身阻止与Kubernetes API服务器的filebeat通信有关。
支持我信念的另一个事实是,我们有另一个集群在 1.25 以上的版本上运行,其 filebeat 部署与我们的设置相同(正在迁移到 1.25)。
任何有关这一发现的线索都非常感谢
该问题实际上是在一次更新期间暗示的,其中正在启动的 aws-node pod 无法连接到 API 服务器。 事实证明,在升级集群时,EKS 不会自动为您更新插件,因此我们升级了 kube-proxy 插件,一切又恢复正常运行