【问题标题】:"Predicate NodeAffinity failed"“谓词 NodeAffinity 失败”
【发布时间】:2021-07-28 12:33:20
【问题描述】:

我有一个 GKE 集群,已更新为“v1.19.11-gke.2101”。

在那个集群中,我们正在运行大量具有如下节点选择器的 pod:

      nodeSelector:
        cloud.google.com/gke-nodepool: default-pool

自从我更新了集群后,不时有pods进入:

Status:         Failed
Reason:         NodeAffinity"

使用这些状态事件:

  Warning  NodeNotReady  55m   node-controller                                            Node is not ready
  Warning  NodeAffinity  53m   kubelet, gke-ef-gke-cluster-front-default-pool-bbda0bbf-t4js  Predicate NodeAffinity failed

问题是,即使状态为“失败”,其他 pod 也已成功调度,因此没有“真正的问题”,只是一个烦人的红旗,我想摆脱它。

我看到在 kubernets GitHub 存储库中关闭了几个问题,其中提到了这一点并声称已修复:

但问题在 GKE 1.19.11 中仍然存在。 AFAIK gke 有自己的 Kubernetes 实现,所以.. 有没有人知道它是否真的在特定的 GKE 版本中得到解决?哪一个?即使没有..知道如何摆脱烦人的标志而不必手动/定期删除卡住的豆荚吗?

在此先感谢,我们非常欢迎任何帮助。

【问题讨论】:

  • 您的问题解决了吗?如果是,您能否发布您遵循的程序作为解决方案并接受它?
  • 我们还没有解决这个问题,我们正在等待GKE 1.20版本稳定后再升级。
  • 给定的答案有帮助吗?
  • 我还没有尝试解决方案,因为1.20版本不稳定,所以我没有回答也没有标记解决方案。

标签: google-kubernetes-engine


【解决方案1】:

此问题会影响“1.19.11”版本下的 GKE 集群,因此如果您使用抢占式节点,将它们升级到“1.20.x”将是一种解决方法。请注意,此问题目前正在处理中,以便提供固定的解决方案。

请注意,虽然您可能会在数据处理过程中遇到延迟,但应该不会对工作量产生影响。

  • 除了手动删除之外,没有其他方法可以删除失败的 pod,但由于问题尚未解决,它们可以重新出现。

  • 暂时退出抢占式节点,因为此问题在常规节点上很少发生。

您可以在这个新的issue tracker 中跟踪更新

【讨论】:

    猜你喜欢
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多