我是Kubernetes的新手,目前我正在研究Kubernete中的评测。我想在Kubernetes中记录部署过程(创建pod、重新启动pod等(,并想知道每个过程所需的时间和资源(RAM、CPU((例如下载映像、构建部署、pod等(。
有没有一种方法或工具可以让我记录这个过程?非常感谢。
如果没有对某些组件的广泛了解和一些深入的编码,我真的不确定你能否实现你想要的结果。
可以从Kubernetes中检索到的内容:
有关事件的信息
类似于吊舱的创建、终止、带有时间戳的分配:
$ kubectl get events --all-namespaces
即使在json
格式中,在该事件中也没有任何关于CPU/RAM使用的信息。
有关pod的信息
$ 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进行对话。除此之外,Container Runtime不仅下载映像,还执行其他不受Kubernetes直接监控的操作。
另一个例子是HPA(Horizontal Pod Autoscaler(是Kubernetes抽象,获取它的度量在很大程度上取决于如何在集群中收集度量,以确定获取度量的最佳方式。
我强烈鼓励您(根据具体情况(分享您想要监控的内容。
您可以在pod的事件提要中找到这些,请检查kubectl describe pod
。