GCP Kubernetes集群监控极限图

时间:2019-09-13 06:15:30

标签: kubernetes google-cloud-platform stackdriver

enter image description here

这是我的Kubernetes集群节点监视。 K8s集群在GKE上运行,并使用堆栈驱动程序监视和记录。

群集大小为4vCPU和15GB内存。在CPU图形中,为什么会有尖峰超出CPU的限制?因为我的群集CPU是4vCPU,但存在极限峰值。

没有集群自动缩放器,节点自动缩放器,垂直自动缩放器,没有任何运行。

同样的问题需要记忆吗?

enter image description here

总大小为15 GB,但容量为15.77 GB,可分配的13 GB表示Kubernetes系统为2 GB。

为了完美监控,我安装了默认的Kubernetes仪表板

enter image description here

哪个显示使用量约为10.2GB,所以我还有2-3 GB的RAM? 由于可分配的13 GB系统占用2 GB?我说的对吗?

我还安装了Grafana

enter image description here

这显示了450 MB的可用内存,我已经导入了该仪表板。

但是,如果它正在使用大约10GB的RAM,那么在13 GB中,我应该还剩下2-3 GB。

更新:

Kubectl describe node <node>


Resource           Requests         Limits
  --------           --------         ------
  cpu                3073m (78%)      5990m (152%)
  memory             7414160Ki (58%)  12386704Ki (97%)

如果您查看堆栈驱动程序的第一张图,这是因为RAM限制的使用增加了tp 15GB,而分配或可用内存仅为13GB。怎么样?

2 个答案:

答案 0 :(得分:2)

因此,通常来说,我认为这些机器可以短暂地通过指定的CPU,称为“突发”。

GKE仪表板,Kubernetes仪表板和Grafana可以很好地使用

  • 这些指标的不同来源
  • 不同单位

示例: 在您的Google摘要中,它显示您有15.77 GB。好吧,这没有错。 该计算机可能指定为15GB。但在内部,Google不会使用GB,MB,B或其他内容进行计算。它以千字节为单位进行计算。 运行kubectl describe nodes <node>时。您将获得以kibibyte为单位的实际值。

例如:对我来说是15399364 Ki,等于15.768948736 GB

最后一件事,通常Google Cloud Console在显示此类信息方面不是很准确。我总是建议您通过命令行获取指标。

答案 1 :(得分:1)

在您的情况下,您有2个问题,一个与CPU使用率有关,另一个与内存使用率有关:

您输入的信息有限,CPU和内存使用情况取决于不同的方面,例如Pod,节点数等。

您说您没有对节点使用自动缩放器。

此页面为Stackdriver Monitoring,您可以看到部分容器,并且CPU图形使用“ container / cpu / usage_time”,其中解释了“以秒为单位的所有内核上的累积CPU使用率”。该数字除以经过的时间代表使用率(以内核数为单位),而与可能设置的任何内核限制无关。每60秒采样一次。”

在同一页上谈论内存,您可以使用“ container / memory / bytes_used”了解此图,其中“内存使用情况以字节为单位,按类型细分:可收回和不可收回”。每60秒取样一次。 memory_type:evictablenon-evictable。可撤消内存是可以很容易地由内核回收的内存,而不可撤消内存则不能。”,在这种情况下,使用的是不可撤消内存。

关于系统在内存情况下可分配的大小的问题,这取决于您为集群工作分配的大小。

例如,我继续创建一个具有1个vCPU和4Gb内存的群集,可分配的内存为2.77Gb。