我是Kubernetes的新手,目前我正在研究Kubernetes中的性能分析。我想在Kubernetes中记录部署过程(创建pod、重启pod等),并想知道每个过程(例如下载镜像、构建部署、pod等)所需的时间和资源(RAM、CPU)。
有没有一种方法或工具可以让我记录这个过程?谢谢!
发布于 2019-11-21 00:45:39
如果没有对某些组件的广泛了解和一些深入的编码,我真的不确定你能达到你想要的结果。
可以从Kubernetes中检索到的内容:
有关事件的信息
像创建pod、销毁pod、使用时间戳进行分配:
$ kubectl get events --all-namespaces
即使在json
格式中,此事件中也没有关于CPU/内存使用率的信息。
pods相关信息
$ kubectl get pods POD_NAME -o json
没有关于CPU/RAM使用情况的信息。
$ kubectl describe pods POD_NAME
也没有关于CPU/RAM使用情况的信息。
关于资源使用的信息
有一些工具可用于监控和报告基本资源使用情况:
$ kubectl top node
带输出:
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
MASTER 90m 9% 882Mi 33%
WORKER1 47m 5% 841Mi 31%
WORKER2 37m 3% 656Mi 24%
$ kubectl top pods --all-namespaces
带输出:
NAMESPACE NAME CPU(cores) MEMORY(bytes)
default nginx-local-84ddb99b55-2nzdb 0m 1Mi
default nginx-local-84ddb99b55-nxfh5 0m 1Mi
default nginx-local-84ddb99b55-xllw2 0m 1Mi
有CPU/RAM使用率,但以基本形式存在。
有关部署的信息
$ kubectl describe deployment deployment_name
提供的输出不提供有关CPU/RAM使用情况的信息。
获取有关资源的信息
获取特定于某些操作的资源(如CPU/RAM使用率)可能会出现问题。并非所有进程都由Kubernetes管理,可能需要操作系统级别的其他工具来获取该信息。
例如,拉取一个用于部署的镜像会使kubelet代理以及CRI与您的集群正在使用的Docker或其他容器运行时进行对话。此外,Container Runtime不仅下载镜像,它还执行其他不受Kubernetes直接监视的操作。
再举一个例子,HPA (Horizontal Autoscaler)是Kubernetes抽象,获取它的指标将高度依赖于如何在集群中收集指标,以便确定获取它们的最佳方式。
我强烈建议您分享您想要监控的具体内容(逐个案例)。
发布于 2019-11-19 10:01:46
您可以在pod的events提要中找到这些,请查看kubectl describe pod
。
https://stackoverflow.com/questions/58925336
复制相似问题