如何从节点本身检查Kubernetes节点的状态?

时间:2019-02-18 21:37:14

标签: kubernetes monitoring kubectl

在Kubernetes集群的主节点上,我可以运行kubectl get nodes并查看集群上任何单个节点的状态,因为kubectl可以找到用于认证的集群证书。在本地工作站上,假设我已正确配置身份验证,则可以执行相同操作。

加入到Kubernetes主服务器的节点中,除了配置auth以使kubectl正常工作外,还有什么方法可以确定节点是否位于{{ 1}}或Ready状态?

我正在尝试构建一些驻留在节点本身上的监视工具,并且我想避免不得不设置服务帐户等来检查节点状态的情况,以防万一通过kubelet,日志,节点上某个位置的文件,命令等来识别它。

1 个答案:

答案 0 :(得分:3)

没有规范的方法,一种选择是使用kubelet API。

kubelet公开了控制平面与之交谈的API,以使其运行pod。默认情况下,它在端口10250上运行,但这是一个写API,需要进行身份验证。

但是,该kubelet还具有一个标志--read-only-port,默认情况下该标志位于端口10255上。您可以使用该标志通过单击healthz端点来检查kubelet是否已就绪。

curl http://<ip>:10255/healthz
ok

此healthz终结点也可在localhost上使用:

curl http://localhost:10248/healthz

如果这还不够,您可以通过点击pods API来检查正在运行的pod是否可用:

curl http://<ip>:10255/pods