我是k8s系统的初学者
我想检查calico节点的准备情况,所以我向节点发送了一个命令,如下所示。
$kubectl exec calico-node-d4tzk -n kube-system -- /bin/calico-node -felix-ready
但是什么也没有回来。我检查了节点的日志,但也没有关于该命令的日志
我想知道什么都不回意味着felix已经准备好了。
我自己找到了答案,但我不确定它是否正确
projectcaclico/node/cmd/calico-node/main.go第98行中有一些关于检查活跃度和准备状态的命令。
if *felixLive || *birdReady || *bird6Ready || *felixReady || *birdLive || *bird6Live {
health.Run(*birdReady, *bird6Ready, *felixReady, *felixLive, *birdLive, *bird6Live, *thresholdTime)
os.Exit(0)
}
然后我研究了Run((函数。在那里,我发现了关于felixReady的代码。
if felixReady {
g.Go(func() error {
if err := checkFelixHealth(ctx, felixReadinessEp, "readiness"); err != nil {
return fmt.Errorf("calico/node is not ready: felix is not ready: %+v", err)
}
return nil
})
}
正如您所看到的,当没有问题时,它会返回零。这就是为什么我认为没有回归意味着费利克斯已经准备好了。