“谓词节点亲和性失败”

Mik*_*tor 8 google-kubernetes-engine

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

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

      nodeSelector:
        cloud.google.com/gke-nodepool: default-pool
Run Code Online (Sandbox Code Playgroud)

自从我更新集群以来,Pod 时不时地进入:

Status:         Failed
Reason:         NodeAffinity"
Run Code Online (Sandbox Code Playgroud)

通过这些状态事件:

  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
Run Code Online (Sandbox Code Playgroud)

问题是,即使状态为“失败”,其他 Pod 也已成功安排,因此不存在“真正的问题”,只是一个令人讨厌的红旗,我想摆脱它。

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

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

提前致谢,我们非常欢迎任何帮助。

小智 2

此问题影响 \xe2\x80\x981.19.11\xe2\x80\x99 版本下的 GKE 集群,因此将它们升级到 \xe2\x80\x981.20.x\xe2\x80\x99 将是一个解决方法,如果您使用可抢占节点。请注意,目前正在解决此问题,以便提供固定的解决方案。

\n

请注意,尽管您可能会遇到数据处理延迟的情况,但这不会对工作负载产生影响。

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

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

    \n
  • \n
\n

您可以在这个新问题跟踪器中跟踪更新

\n