Kubernetes:了解“的内存使用”;“kubectl顶部节点”;

Kubernetes:了解“的内存使用”;“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

如何解释“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 Gi


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。@AlejandroPedraza
kubectl descripe nodes
有用:你必须使用heapster吗?我让heapster运行,但kubectl顶部节点显示“错误:指标还不可用”