我正在设置一个服务,该服务使用k8s为每个用户启动jupyter pod。用户查询时,我需要提供jupyter pod的实时资源使用情况。我尝试了metrics-server和kubectl顶部。他们的结果来自缓存,大约有1分钟的延迟。有什么解决办法吗?
> kubectl version
客户端版本:version.Info {主要:“ 1”,次要:“ 14”,GitVersion:“ v1.14.0”,GitCommit:“ 641856db18352033a0d96dbc99153fa3b27298e5”,GitTreeState:“干净”,构建日期:“ 2019-03-25T15 :53:57Z“,GoVersion:” go1.12.1“,编译器:” gc“,平台:” linux / amd64“} 服务器版本:version.Info {主要:“ 1”,次要:“ 12+”,GitVersion:“ v1.12.6-aliyun.1”,GitCommit:“ 8cb561c”,GitTreeState:“”,BuildDate:“ 2019-05- 23T11:28:17Z“,GoVersion:” go1.10.8“,编译器:” gc“,平台:” linux / amd64“}
答案 0 :(得分:0)
您可以查询kubelet统计数据端点:
curl --insecure https://<node url>:10250/stats/summary
您还可以使查询更加针对吊舱/容器
curl --insecure https://<node url>:10250/{namespace}/{podName}/{uid}/{containerName}
其中uid
基本上是任何字符串...
您所用版本的代码部分为here
另一个提示:如果您的Pod作为主机网络的一部分运行,则您也可以查询localhost
,并且需要为该帐户分配访问权限。查询如下所示:
TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)
curl https://localhost:10250/stats/summary --header "Authorization: Bearer $TOKEN" --insecure