如何修复NetworkUnavailable:Kubernetes节点中的True错误

vdgimpew  于 2023-10-17  发布在  Kubernetes
关注(0)|答案(2)|浏览(189)

节点(N):
Status NetworkUnavailable: True
消息错误:
RouteController无法创建路由


尝试删除节点并创建新节点。新建节点后状态恢复正常。
如何排除故障或检查问题

zy1mlcev

zy1mlcev1#

为了从您的问题中获取更多信息,您可以从StackDriver--> Logging --> Loggs viewer检索日志,用户“Advanced Filter”,然后按“Status NetworkUnavailable:True Message错误”或“RouteController创建路由失败”

ttisahbt

ttisahbt2#

这通常发生在K8中的组件决定您的网络不可用时。比如说,

  • 在Calico中,有代码可以切换“true”或“false”
  • 在另一个CNI提供商Antrea,同样的事情也会发生,

通常这意味着您的CNI提供商“尚未准备好”。

CNI提供商设置NetworkUnavailable失败的原因:假的?

  • 您的CNI运行的节点缺少CNI所依赖的一些网络技术(即也许OVS(antreA)或BGP(calico)在您的Linux版本上不起作用,或者您没有在Windows机器上安装这些驱动程序)。
  • 可能您的CNI提供程序无法访问Kubernetes API Server来更新节点的条件元数据。这可能是一个与RBAC相关的错误(您将在CNI提供程序日志中看到此错误)。https://github.com/projectcalico/calico/issues/7996

在任何情况下,您都可以尝试手动运行一个pod,以查看是否“CNI已启动,但节点只是具有一个false条件”。在这种情况下:

  • 容器将无法“创建”,因为containerd无法从CNI获取IP,或者
  • 容器将成功,在这种情况下,你有一个元数据错误在你的集群-即。某些组件没有准确更新节点条件。

Kubernetes本身还有工作要做,以改进围绕此“节点条件”的文档,并使其在未来更容易解释(https://kubernetes.io/docs/concepts/architecture/nodes/#condition)。

相关问题