我是Kubernetes的新手,我正在研究Kubernetes中的配置文件。我想在Kubernetes中记录部署过程(创建Pod,重启Pod等),并想知道每个过程所需的时间和资源(例如RAM,CPU)(例如下载映像,构建部署,Pod等时)。 / p>
我是否有方法或工具来记录此过程?谢谢!
答案 0 :(得分:1)
我不确定如果没有对某些组件的深入了解和一些深层次的编码,您是否可以实现所需的结果。
类似于pod的创建,终止,带时间戳的分配:
$ kubectl get events --all-namespaces
即使是json
格式,在此事件中也没有关于CPU / RAM的使用情况。
$ 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(水平Pod自动缩放器)是Kubernetes抽象,获取其指标将高度依赖于如何在集群中收集指标,以确定获取它们的最佳方法。
我强烈建议您确切地分享您想要监视的内容。
答案 1 :(得分:0)
您可以在广告连播的事件供稿中找到这些内容,请选中kubectl describe pod
。