GCP Kubernetes 集群监控限制图
GCP Kubernetes cluster monitoring limit graph
这是我的Kubernetes集群节点监控。 K8s 集群在 GKE 上 运行 并使用堆栈驱动程序监控和日志记录。
簇大小为 4vCPU 和 15GB 内存。在 CPU 图表中,为什么峰值超过了 CPU 的限制?因为我的集群 CPU 是 4vCPU 但限制尖峰在那里。
没有集群自动缩放器、节点自动缩放器、垂直自动缩放器什么都没有运行。
同样的问题为了记忆?
总大小为 15 GB,但容量为 15.77 GB,可分配 13 GB 意味着 2 GB 用于 Kubernetes 系统。
为了完美监控,我安装了默认的 Kubernetes 仪表板
这表明使用量约为 10.2GB,所以我还有 2-3 GB 的 RAM?
可分配的 13 GB 系统是否占用 2 GB?我说得对吗?
我也安装了Grafana
这显示我已导入此仪表板的 450 MB 可用内存。
但是如果它使用大约 10GB 的 RAM,那么在 13GB 中我应该还剩下 2-3GB。
更新:
Kubectl describe node <node>
Resource Requests Limits
-------- -------- ------
cpu 3073m (78%) 5990m (152%)
memory 7414160Ki (58%) 12386704Ki (97%)
如果您查看 stackdriver 的第一个图表,因为 RAM 限制的使用增加增加了 tp 15GB,但分配或可用内存仅为 13GB。怎么样?
所以一般来说,我认为机器有能力短暂地超过指定的CPU,这被称为突发。
GKE Dashboard、Kubernetes Dashboard和Grafana可以很好的使用
- 这些指标的不同来源
- 不同单位
示例:
在您的 google 摘要中,它显示您有 15.77 GB。好吧,这没有错。
该机器可能指定为 15GB。但在内部,google 不使用 GB、MB、B 或其他东西进行计算。它以千字节计算。
当你运行kubectl describe nodes <node>
。您得到以千字节为单位的实际值。
例如:对我来说,15399364 Ki 等于 15.768948736 GB
最后一件事,通常 Google 云控制台在显示此类信息时不是很准确。我总是建议您通过命令行获取指标。
在您的情况下,您有 2 个问题,一个与 CPU 使用相关,另一个与内存使用相关:
您输入的信息有限,CPU和内存使用情况取决于不同方面,例如pods、节点数等
你说你没有为节点使用自动缩放器。
此页面 Stackdriver Monitoring,您可以看到容器的部分,对于 CPU 图表使用“container/cpu/usage_time”,其中解释“累积 CPU 使用所有几秒钟内的核心。这个数字除以经过的时间表示使用的核心数量,而不管可能设置的任何核心限制。每 60 秒采样一次。
在同一页面上谈论内存,您可以阅读此图使用“container/memory/bytes_used”,其中告诉“内存使用量(以字节为单位),按类型细分:可回收和不可回收。每 60 秒采样一次。
memory_type:evictable
或 non-evictable
。可回收内存是可以被内核轻易回收的内存,而非不可回收内存则不能。”,在这种情况下使用不可回收。
关于系统在内存的情况下可分配的大小的问题,这取决于您为集群工作设置的大小。
例如,我继续创建一个具有 1 vCPU 和 4Gb 内存的集群,可分配的内存为 2.77Gb。
这是我的Kubernetes集群节点监控。 K8s 集群在 GKE 上 运行 并使用堆栈驱动程序监控和日志记录。
簇大小为 4vCPU 和 15GB 内存。在 CPU 图表中,为什么峰值超过了 CPU 的限制?因为我的集群 CPU 是 4vCPU 但限制尖峰在那里。
没有集群自动缩放器、节点自动缩放器、垂直自动缩放器什么都没有运行。
同样的问题为了记忆?
总大小为 15 GB,但容量为 15.77 GB,可分配 13 GB 意味着 2 GB 用于 Kubernetes 系统。
为了完美监控,我安装了默认的 Kubernetes 仪表板
这表明使用量约为 10.2GB,所以我还有 2-3 GB 的 RAM? 可分配的 13 GB 系统是否占用 2 GB?我说得对吗?
我也安装了Grafana
这显示我已导入此仪表板的 450 MB 可用内存。
但是如果它使用大约 10GB 的 RAM,那么在 13GB 中我应该还剩下 2-3GB。
更新:
Kubectl describe node <node>
Resource Requests Limits
-------- -------- ------
cpu 3073m (78%) 5990m (152%)
memory 7414160Ki (58%) 12386704Ki (97%)
如果您查看 stackdriver 的第一个图表,因为 RAM 限制的使用增加增加了 tp 15GB,但分配或可用内存仅为 13GB。怎么样?
所以一般来说,我认为机器有能力短暂地超过指定的CPU,这被称为突发。
GKE Dashboard、Kubernetes Dashboard和Grafana可以很好的使用
- 这些指标的不同来源
- 不同单位
示例:
在您的 google 摘要中,它显示您有 15.77 GB。好吧,这没有错。
该机器可能指定为 15GB。但在内部,google 不使用 GB、MB、B 或其他东西进行计算。它以千字节计算。
当你运行kubectl describe nodes <node>
。您得到以千字节为单位的实际值。
例如:对我来说,15399364 Ki 等于 15.768948736 GB
最后一件事,通常 Google 云控制台在显示此类信息时不是很准确。我总是建议您通过命令行获取指标。
在您的情况下,您有 2 个问题,一个与 CPU 使用相关,另一个与内存使用相关:
您输入的信息有限,CPU和内存使用情况取决于不同方面,例如pods、节点数等
你说你没有为节点使用自动缩放器。
此页面 Stackdriver Monitoring,您可以看到容器的部分,对于 CPU 图表使用“container/cpu/usage_time”,其中解释“累积 CPU 使用所有几秒钟内的核心。这个数字除以经过的时间表示使用的核心数量,而不管可能设置的任何核心限制。每 60 秒采样一次。
在同一页面上谈论内存,您可以阅读此图使用“container/memory/bytes_used”,其中告诉“内存使用量(以字节为单位),按类型细分:可回收和不可回收。每 60 秒采样一次。
memory_type:evictable
或 non-evictable
。可回收内存是可以被内核轻易回收的内存,而非不可回收内存则不能。”,在这种情况下使用不可回收。
关于系统在内存的情况下可分配的大小的问题,这取决于您为集群工作设置的大小。
例如,我继续创建一个具有 1 vCPU 和 4Gb 内存的集群,可分配的内存为 2.77Gb。