如果某个节点在群集中向下并且状态变为NotReady
,我是否可以使其触发某些操作?
我尝试使用client-go和curl来观看/api/v1/watch/nodes
并在节点状态有any
更改时获取通知。仅当节点状态从Ready
更改为NotReady
时,如何才能通知?
截至目前,无法查询特定更新。有两种方法可以实现这个:
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"
}
我能找到的最接近的例子是Calico-go,其中监视网络策略的任何变化,并且在calico-etcd中完成相关的更改,以便节点上的代理可以相应地实现防火墙规则。从这一行开始,处理事件,当然你必须进一步导航堆栈! Code