我正在尝试学习kubernetes时测试活动性探针。 我已经建立了一个迷你库并配置了带有活动探针的吊舱。
测试脚本(例如通过docker exec)似乎可以根据需要报告成功和失败。
该探测导致失败事件,我可以通过 kubectl describe podname 查看该事件 但它不会报告从故障中恢复。
This answer说,默认情况下不报告活动性探测成功。
我一直在尝试通过运行类似以下的变体来提高日志级别,但未成功:
minikube start --extra-config=apiserver.v=4
minikube start --extra-config=kubectl.v=4
minikube start --v=4
为kubelet配置日志记录级别的正确方法是什么?
是否可以在不重新启动Pod或minikube的情况下对其进行修改?
如果失败导致Pod重新启动,将报告一个事件。 对于kubernetes本身,我知道使用它来决定是否重新启动Pod就足够了。
为什么不记录事件以从不需要重启的故障中恢复? 我希望探针可以在健康监控系统中工作。
如果在普罗米修斯或类似方法中使用了相同的探针,恢复将如何可见? 对于昂贵的探针,我不希望它多次运行。 (授权的一个探针可以将输出缓存到文件中,从而使第二个探针更便宜)
答案 0 :(得分:2)
我一直在尝试提高日志级别,但没有成功 运行类似的变体:
minikube start --extra-config=apiserver.v=4 minikube start --extra-config=kubectl.v=4 minikube start --v=4
@Bruce,您提到的所有选项都无法使用,因为它们已与Kubernetes集群的其他组件一起被删除,并且在您提到的答案中明确指出:
成功探测的输出不会记录在任何地方,除非您 Kubelet 的日志级别至少为--v = 4, 在这种情况下,它将位于 Kubelet的日志 。
因此,您需要专门为kubelet设置-v=4
。在官方文档中,您可以看到它可以以特定的标志开始,包括一个标志,它更改了日志的默认详细级别:
-v, --v Level
number for the log level verbosity
Kubelet 作为每个节点上的系统服务运行,因此您可以通过简单地发出以下命令来检查其状态:
systemctl status kubelet.service
,如果要查看日志,请发出命令:
journalctl -xeu kubelet.service
尝试:
minikube start --extra-config=kubelet.v=4
但是,我不确定100% Minikube 是否能够传递此参数,因此您需要自己进行验证。如果它不起作用,您仍然应该能够将其添加到kubelet配置文件中,并指定启动它的参数(提交更改后不要忘记重新启动kubelet.service
,您只需要运行{ {1}})
让我知道是否有帮助,如果有一些不完全清楚的地方,请随时询问其他问题。