ers*_*les 6 kubernetes prometheus
我在Grafana仪表板中查看Prometheus指标,但我对一些面板感到困惑,这些面板根据我不熟悉的ID显示指标。我假设这/kubepods/burstable/pod99b2fe2a-104d-11e8-baa7-06145aa73a4c指向一个单一的pod,并且假定/kubepods/burstable/pod99b2fe2a-104d-11e8-baa7-06145aa73a4c/<another-long-string>解析为pod中的一个容器,但是如何将这个ID解析为pod名称和一个容器,即如何将该ID映射到见到的pod名称我跑kubectl get pods?
我已经尝试过跑步,kubectl describe pods --all-namespaces | grep "99b2fe2a-104d-11e8-baa7-06145aa73a4c"但是没有任何反应。
此外,中还有多个子路径/kubepods,例如/kubepods/burstable和/kubepods/besteffort。这些是什么意思,给定的吊舱如何落入这些子路径中的一个或另一个?
最后,我在哪里可以了解有关什么管理的更多信息/kubepods?
普罗米修斯查询:
sum (container_memory_working_set_bytes{id!="/",kubernetes_io_hostname=~"^$Node$"}) by (id)
Run Code Online (Sandbox Code Playgroud)
谢谢阅读。
埃里克
好的,既然我已经做了一些挖掘工作,那么我将尝试回答我自己的所有3个问题。我希望这可以帮助其他人。
如何将此ID映射到运行kubectl get pods时看到的pod名称?
给定以下内容,/kubepods/burstable/pod99b2fe2a-104d-11e8-baa7-06145aa73a4c最后一位是容器UID,可以通过查看metadata.uid容器清单上的属性将其解析为容器:
kubectl get pod --all-namespaces -o json | jq '.items[] | select(.metadata.uid == "99b2fe2a-104d-11e8-baa7-06145aa73a4c")'
Run Code Online (Sandbox Code Playgroud)
将UID解析为容器后,我们可以将第二个UID(容器ID)与容器.status.containerStatuses[].containerID清单中的匹配,从而将其解析为容器:
~$ kubectl get pod my-pod-6f47444666-4nmbr -o json | jq '.status.containerStatuses[] | select(.containerID == "docker://5339636e84de619d65e1f1bd278c5007904e4993bc3972df8628668be6a1f2d6")'
Run Code Online (Sandbox Code Playgroud)
此外,/ kubepods中有几个子路径,例如/ kubepods / burstable和/ kubepods / besteffort。这些是什么意思,给定的吊舱如何落入这些子路径中的一个或另一个?
Burstable,BestEffort和Guaranteed是Kubernetes根据Pod规范中的内存和cpu分配分配给Pod的服务质量(QoS)类。有关QoS类的更多信息,请参见https://kubernetes.io/docs/tasks/configure-pod-container/quality-service-pod/。
报价:
要为Pod提供QoS等级的保证:
Pod中的每个容器都必须有一个内存限制和一个内存请求,并且它们必须相同。
Pod中的每个Container必须具有cpu限制和cpu请求,并且它们必须相同。
如果满足以下条件,则为Pod提供burstable的QoS类:
Pod不符合QoS类别保证的标准。
Pod中至少有一个容器具有内存或CPU请求。
为使Pod获得BestEffort QoS类,Pod中的容器不得具有任何内存或cpu限制或请求。
最后,在哪里可以了解有关管理/ kubepods的内容的更多信息?
/kubepods/burstable,/kubepods/besteffort和/kubepods/guaranteed都是cgroups层次结构的一部分,位于/ sys / fs / cgroup目录中。Cgroups管理容器进程(例如CPU,内存,磁盘I / O和网络)的资源使用情况。每个资源在cgroup层次结构文件系统中都有其自己的位置,并且在每个资源子目录中都是/ kubepods子目录。有关cgroup和Docker容器的更多信息,请参见:https : //docs.docker.com/config/containers/runmetrics/#control-groups
| 归档时间: |
|
| 查看次数: |
1962 次 |
| 最近记录: |