这是我的Kubernetes集群节点监视。 K8s集群在GKE上运行,并使用堆栈驱动程序监视和记录。
群集大小为4vCPU和15GB内存。在CPU图形中,为什么会有尖峰超出CPU的限制?因为我的群集CPU是4vCPU,但存在极限峰值。
没有集群自动缩放器,节点自动缩放器,垂直自动缩放器,没有任何运行。
同样的问题需要记忆吗?
总大小为15 GB,但容量为15.77 GB,可分配的13 GB表示Kubernetes系统为2 GB。
为了完美监控,我安装了默认的Kubernetes仪表板
哪个显示使用量约为10.2GB,所以我还有2-3 GB的RAM? 由于可分配的13 GB系统占用2 GB?我说的对吗?
我还安装了Grafana
这显示了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。怎么样?
答案 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:evictable
或non-evictable
。可撤消内存是可以很容易地由内核回收的内存,而不可撤消内存则不能。”,在这种情况下,使用的是不可撤消内存。
关于系统在内存情况下可分配的大小的问题,这取决于您为集群工作分配的大小。
例如,我继续创建一个具有1个vCPU和4Gb内存的群集,可分配的内存为2.77Gb。