Kubernetes:了解“的内存使用”;“kubectl顶部节点”;
如何解释“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% 名称CPU(核心)CPU%内存(字节)内存% ip-XXX.ec2.内部222m 11%3237Mi 41% ip-YYY.ec2.91m内部9%2217Mi 60% 相比之下,如果我在Kubernetes仪表板中查找同一节点,我会得到: 内存请求:410M/7.799 GiKubernetes:了解“的内存使用”;“kubectl顶部节点”;,kubernetes,kubectl,Kubernetes,Kubectl,如何解释“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仪表板
如何协调差异?kubectl top node反映了VM(节点)的实际使用情况,k8s仪表板显示了您配置的限制/请求的百分比 例如,您的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请求/限制的POD意味着无限,这在k8s仪表板中不算,但肯定会消耗内存
总结内存请求/限制,您会发现它们与k8s仪表板匹配。
kubectl top nodes中的CPU%如何它是否实际显示了VM(节点)的CPU使用率?是否存在任何API来获取这个好的%值?同样的事情
kubectl top nodes
显示虚拟机(节点)的实际CPU使用情况。我认为k8s目前还没有提供这种API。@AlejandroPedrazakubectl descripe nodes
有用:你必须使用heapster吗?我让heapster运行,但kubectl顶部节点显示“错误:指标还不可用”