gee*_*guy 1 monitoring kubernetes kubectl
从 Kubernetes 集群中的主节点,我可以运行kubectl get nodes
并查看集群上任何单个节点的状态,因为kubectl
可以找到用于身份验证的集群证书。在我的本地工作站上,假设我的身份验证配置正确,我也可以这样做。
从加入到 Kubernetes master的节点,有没有什么方法可以配置身份验证以便kubectl
工作,我可以识别节点是处于Ready
还是Not Ready
状态?
我正在尝试构建一些驻留在节点本身上的监控工具,我想避免设置服务帐户等只是为了检查节点状态,以防万一我可以通过某种方式识别它kubelet、日志、节点上某处的文件、命令等...
没有规范的方法可以做到这一点,一种选择是使用 kubelet API。
kubelet 公开了一个 API,控制平面与之通信以使其运行 pod。默认情况下,它在端口 10250 上运行,但这是一个写 API,需要进行身份验证。
但是,kubelet 也有一个标志--read-only-port
,默认情况下在端口 10255 上。您可以使用它通过点击 healthz 端点来检查 kubelet 是否准备就绪。
curl http://<ip>:10255/healthz
ok
Run Code Online (Sandbox Code Playgroud)
此 healthz 端点也可在 localhost 上使用:
curl http://localhost:10248/healthz
Run Code Online (Sandbox Code Playgroud)
如果这还不够,您可以通过点击 pods API 来检查正在运行的 pod 是否可用:
curl http://<ip>:10255/pods
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3665 次 |
最近记录: |