Prometheus 中的 container="POD" 标签是什么?为什么大多数示例都排除它?

2023-11-21

我读过很多指南,展示了如何使用 Prometheus 监控 Kubernetes 中 pod 的 cpu 和内存使用情况,其中大多数看起来像这样:

rate(container_cpu_usage_seconds_total{pod=~"compute-.*", image!="", container!="POD"}[5m])

但我找不到任何有关容器标签为何存在的文档(似乎它会导致重复数据)以及为什么在许多监控示例中避免使用它。 我知道这个指标来自 Kubernetes 的 cadvisor 组件,但我能找到的关于这些指标的唯一文档是代码中提供的简短描述here.

有谁知道这个标签的用途以及哪里有更深入的文档没有这些指标?


正如 @Ali Sattari 在评论中已经提到的那样,容器是暂停容器。


暂停容器

暂停容器首先启动,然后再调度其他 Pod。暂停容器的用途(container_name="POD") 是为 pod 和其他容器提供网络命名空间,这些容器将分配给该 pod。暂停容器的镜像始终存在于 Kubernetes 中。因此,Pod 资源的分配是即时的。暂停容器启动后,他就没有其他工作了。

默认情况下,暂停容器是隐藏的,但您可以通过运行下一个命令来查看它们:docker ps | grep pause

$ docker ps | grep pause
3bb5065dd9ba        k8s.gcr.io/pause:3.2                      "/pause"                 3 minutes ago       Up 3 minutes                            k8s_POD_kubernetes-bootcamp-fb5c67579-5rxjn_default_93ce94f8-b440-4b4f-9e4e-25f97be8196f_0
0627138518e1        k8s.gcr.io/pause:3.2                      "/pause"                 3 minutes ago       Up 3 minutes                            k8s_POD_metrics-server-56c4f8c9d6-vf2zg_kube-system_93626697-8cd0-4fff-86d3-245c23d74a42_0
81ca597ed3ff        k8s.gcr.io/pause:3.2                      "/pause"                 3 minutes ago       Up 3 minutes                            k8s_POD_storage-provisioner_kube-system_dbdec6e5-d3ed-4967-a042-1747f8bdc39a_0
0d01130b158f        k8s.gcr.io/pause:3.2                      "/pause"                 3 minutes ago       Up 3 minutes                            k8s_POD_kubernetes-dashboard-968bcb79-pxmzb_kubernetes-dashboard_b1265ad7-2bce-46aa-8764-d06d72856633_0
d8a159b6215e        k8s.gcr.io/pause:3.2                      "/pause"                 3 minutes ago       Up 3 minutes                            k8s_POD_dashboard-metrics-scraper-f6647bd8c-hqm6k_kubernetes-dashboard_bde40acc-a8ca-451a-9868-26e86ccafecb_0
294e81edf0be        k8s.gcr.io/pause:3.2                      "/pause"                 3 minutes ago       Up 3 minutes                            k8s_POD_coredns-74ff55c5b-84vr7_kube-system_28275e83-613a-4a09-8ace-13d6e831c1bf_0
2b3bfad1201b        k8s.gcr.io/pause:3.2                      "/pause"                 3 minutes ago       Up 3 minutes                            k8s_POD_kube-proxy-zxjgc_kube-system_34f8158a-487e-4d00-80f1-37b67b72865e_0
d5542091730b        k8s.gcr.io/pause:3.2                      "/pause"                 4 minutes ago       Up 4 minutes                            k8s_POD_kube-scheduler-minikube_kube-system_6b4a0ee8b3d15a1c2e47c15d32e6eb0d_0
b87163ed2c0a        k8s.gcr.io/pause:3.2                      "/pause"                 4 minutes ago       Up 4 minutes                            k8s_POD_kube-controller-manager-minikube_kube-system_57b8c22dbe6410e4bd36cf14b0f8bdc7_0
c97ed96ded60        k8s.gcr.io/pause:3.2                      "/pause"                 4 minutes ago       Up 4 minutes                            k8s_POD_etcd-minikube_kube-system_62a7db7bebf35458f2365f79293db6d3_0
4ab2d11317ed        k8s.gcr.io/pause:3.2                      "/pause"                 4 minutes ago       Up 4 minutes                            k8s_POD_kube-apiserver-minikube_kube-system_dc477bf6fc026f57469b47d9be68a88c_0

您可以阅读有关暂停容器的更多信息here.


暂停 Prometheus 中的容器

在为 Prometheus 提供的示例中,您经常可以看到下一个限制:container_name!="POD",因为仅请求当前工作的必要容器的资源使用情况非常有用,而无需暂停容器的信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Prometheus 中的 container="POD" 标签是什么?为什么大多数示例都排除它? 的相关文章

随机推荐