【问题标题】:How to detect GKE autoupgrading a node in Stackdriver logs如何在 Stackdriver 日志中检测 GKE 自动升级节点
【发布时间】:2019-11-06 10:55:14
【问题描述】:

我们有一个带有 auto-upgrading nodes 的 GKE 集群。我们最近注意到一个节点变得无法调度并最终被删除,我们怀疑它正在为我们自动升级。有没有办法在 Stackdriver 中确认(或以其他方式)这确实是发生的原因?

【问题讨论】:

  • 不确定,但它应该做一个cordon 并排空。在这种情况下,如果 stackdriver 正在抓取,kubelet 将生成以下内容。 kubelet[1319]: I0624 18:41:04.771532 1319 kubelet_node_status.go:447] 记录节点 gke-squareroute-default-pool-9f095a99-s6z9 的 NodeNotSchedulable 事件消息
  • @eamon1234 谢谢——是的,我们确实得到了当时弹出NodeNotSchedulable 的日志。我想这并不完全足以知道它是由自动节点升级引起的(例如,有人可能是手动进行的),但它为我们提供了一个很好的方法。
  • 通常您应该将升级视为节点池操作,但目前存在此操作期间未创建日志的问题。如果您手动升级节点池,它们仍然会出现

标签: kubernetes google-kubernetes-engine google-cloud-stackdriver


【解决方案1】:

我认为您的问题已经在 cmets 中得到解答。正如 GKE 团队自行决定定期进行自动升级一样。要获得更多控制权,您可以按照here 的说明创建维护时段。这基本上是您选择的自动升级应该发生的时间范围。

【讨论】:

    【解决方案2】:

    您可以通过 Cloud Logging(以前的 Stackdriver)使用以下高级日志查询来检测对节点池的升级:

    protoPayload.methodName="google.container.internal.ClusterManagerInternal.UpdateClusterInternal"
    resource.type="gke_nodepool"
    

    大师

    protoPayload.methodName="google.container.internal.ClusterManagerInternal.UpdateClusterInternal"
    resource.type="gke_cluster"
    

    此外,您可以使用 Maintenance Windows 控制何时应用更新(就像用户 aurelius 提到的那样)。

    【讨论】:

    • 谢谢。您能否查询由于此升级事件而终止的特定节点?
    猜你喜欢
    • 2019-09-01
    • 2019-07-19
    • 2019-05-16
    • 2019-08-03
    • 1970-01-01
    • 1970-01-01
    • 2019-03-24
    • 2020-09-12
    • 2017-08-05
    相关资源
    最近更新 更多