gpt4 book ai didi

curl - 如何使用client-go或curl观察节点并通知它们是否变为 “NotReady”?

转载 作者:行者123 更新时间:2023-12-02 12:21:45 25 4
gpt4 key购买 nike

如果集群中的某些节点处于关闭状态,并且状态变为NotReady,我可以使其触发某些操作吗?

我尝试使用client-go和curl观看/api/v1/watch/nodes并在节点状态更改any时得到通知。如果节点状态从Ready更改为NotReady,如何仅通知通知

最佳答案

截至目前,尚无法查询特定更新。有两种方法可以实现此目的:

  • NodeStatus有一个名为lastTransitionTime的字段,该字段记录字段中的更改。在您的应用程序中,您可以每隔X秒检查一次,然后将上次检查的时间与lastTransitionTime进行比较以确定是否有更改。如果您的应用程序重新启动,则必须在应用程序启动时进行一次检查
    {
    "type": "Ready",
    "status": "True",
    "lastHeartbeatTime": "2017-12-27T09:52:19Z",
    "lastTransitionTime": "2017-12-26T14:55:49Z",
    "reason": "KubeletReady",
    "message": "kubelet is posting ready status"
    }
  • 用client-go编写的应用程序可以维护缓存,并将缓存中的值与watch事件中的值进行比较。同样,在这种情况下,您将不得不考虑在监视程序服务关闭时不丢失事件的方法。您可以将该状态存储在某个位置,也可以使用其他机制,但这取决于您的用例的重要性。

  • 我能找到的最接近的示例是在Calico-go中,该网络可监视网络策略中的任何更改,并在calico-etcd中进行相关更改,以便节点上的代理可以相应地实现防火墙规则。从这一行开始,将处理事件,当然,您将不得不进一步浏览堆栈! Code

    关于curl - 如何使用client-go或curl观察节点并通知它们是否变为 “NotReady”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47989602/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com