如何解释“kubectl top node”返回的内存使用情况。例如。如果它返回:
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% ip-XXX.ec2.internal 222m 11% 3237Mi 41% ip-YYY.ec2.internal 91m 9% 2217Mi 60%
相比之下,如果我查看Kubernetes仪表板中的同一节点,我会得到: 内存请求:410M / 7.799 Gi
<小时/> kubernetes信息中心
如何调和差异?
答案 0 :(得分:6)
kubectl top node
反映了VM(节点)的实际使用情况,k8s仪表板显示了您配置的限制/请求的百分比。
E.g。你的EC2实例有8G内存,你实际上使用的是3237MB,所以它是41%。在k8s中,您只需要410MB(5.13%),并且内存限制为470MB。这并不意味着您只消耗5.13%的内存,而是配置的数量。
Namespace Name CPU Requests CPU Limits Memory Requests Memory Limits
--------- ---- ------------ ---------- --------------- -------------
default kube-lego 20m (2%) 0 (0%) 0 (0%) 0 (0%)
default mongo-0 100m (10%) 0 (0%) 0 (0%) 0 (0%)
default web 100m (10%) 0 (0%) 0 (0%) 0 (0%)
kube-system event-exporter- 0 (0%) 0 (0%) 0 (0%) 0 (0%)
kube-system fluentd-gcp-v2.0-z6xh9 100m (10%) 0 (0%) 200Mi (11%) 300Mi (17%)
kube-system heapster-v1.4.0-3405140848-k6cm9 138m (13%) 138m (13%) 301456Ki (17%) 301456Ki (17%)
kube-system kube-dns-3809445927-hn5xk 260m (26%) 0 (0%) 110Mi (6%) 170Mi (9%)
kube-system kube-dns-autoscaler-38801 20m (2%) 0 (0%) 10Mi (0%) 0 (0%)
kube-system kube-proxy-gke-staging-default- 100m (10%) 0 (0%) 0 (0%) 0 (0%)
kube-system kubernetes-dashboard-1962351 100m (10%) 100m (10%) 100Mi (5%) 300Mi (17%)
kube-system l7-default-backend-295440977 10m (1%) 10m (1%) 20Mi (1%) 20Mi (1%)
在这里,您可以看到许多具有0请求/限制的广告单元意味着无限,这在k8s信息中心中没有计算,但肯定消耗内存。