分析Kubernetes部署过程

时间:2019-11-19 01:24:16

标签: kubernetes containers profiling

我是Kubernetes的新手,我正在研究Kubernetes中的配置文件。我想在Kubernetes中记录部署过程(创建Pod,重启Pod等),并想知道每个过程所需的时间和资源(例如RAM,CPU)(例如下载映像,构建部署,Pod等时)。 / p>

我是否有方法或工具来记录此过程?谢谢!

2 个答案:

答案 0 :(得分:1)

我不确定如果没有对某些组件的深入了解和一些深层次的编码,您是否可以实现所需的结果。

可以从Kubernetes检索到什么内容

有关事件的信息

类似于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