gpt4 book ai didi

Kubernetes top vs Linux top

转载 作者:行者123 更新时间:2023-12-02 11:31:39 27 4
gpt4 key购买 nike

Kubernetes top (kubectl top) 命令显示的内存使用情况与在 pod 内运行的 Linux top 命令不同。

我创建了 k8s 部署,其中 YAML 包含以下内存限制:

resources:
limits:
cpu: "1"
memory: 2500Mi
requests:
cpu: 200m
memory: 2Gi

以下命令的输出如图所示:
bash4.4$ kubectl top pod PODNAME 

NAME CPU(cores) MEMORY(bytes)
openam-d975d46ff-rnp6h 2m 1205Mi

运行 linux top 命令:
Kubectl exec -it PODNAME top 

Mem: 12507456K used, 4377612K free, 157524K shrd,
187812K buff, 3487744K cached

注意“free -g”还显示使用了 11Gb。

问题是这与“kubectl top”相矛盾,后者显示仅使用了 1205 mb。

最佳答案

命令 kubectl top显示给定 pod 的指标。该信息基于来自 cAdvisor 的报告,收集真实的 Pod 资源使用情况。

如果您运行 top在 pod 内部,就像您在主机系统上运行它一样,因为 pod 正在使用主机系统的内核。
Unix top用途 proc虚拟文件系统并读取 /proc/meminfo文件以获取有关当前内存状态的实际信息。 Pod 内的容器部分共享 /proc与主机系统包括有关内存和 CPU 信息的路径。

您可以在以下文档中找到更多信息:kubectl-top-pod man page , Memory inside Linux containers

关于Kubernetes top vs Linux top,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51641310/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com