从Kubernetes集群中的主节点,我可以运行kubectl get nodes并查看集群上任何单个节点的状态,因为kubectl可以找到用于身份验证的集群证书。在我的本地工作站上,假设我已正确配置auth,我也可以这样做。
从连接到Kubernetes主节点的节点,有没有办法,没有配置auth以便kubectl工作,我可以识别节点是否处于Ready或Not Ready状态?
我正在尝试构建一些驻留在节点本身上的监视工具,我想避免设置服务帐户等只是为了检查节点状态,以防我通过某种方式识别它kubelet,日志,节点上的某个文件,命令等等......
没有规范的方法可以做到这一点,一种选择是使用kubelet API。
kubelet公开了一个控制平面与之对话的API,以使其运行pod。默认情况下,它在端口10250上运行,但这是一个写API,需要进行身份验证。
但是,kubelet还有一个标志--read-only-port,默认情况下是在端口10255上。你可以通过点击healthz端点来检查kubelet是否准备就绪。
curl http://:10255/healthz
ok
此healthz端点也可在localhost上使用:
curl http://localhost:10248/healthz
如果这还不够,您可以通过点击pod API检查是否有可用的运行pod:
curl http://:10255/pods
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。