监控 GKE 节点中 CPU 和内存的百分比

Monitor percentage of CPU and memory in GKE nodes

我想使用 Stackdriver 监控来监视我的 GKE 节点的 CPU/mem % 使用率。

但是,在通过 Stackdriver Monitoring UI 时,似乎没有任何此类选项可用(意思是百分比)。

另一方面,似乎有 2 个非常相似的指标(它们的描述是 相同)(看起来是)绝对内存使用。 (附上截图)。

有人知道如何提供 GKE 节点上使用的内存百分比和 CPU 吗? (不是容器)

很遗憾,这是不可能的。请查看 documentation page where you can find list of metrics that can be collected from Google Kubernetes Engine and then used with Stackdriver Monitoring. In addition you can also check these document 以查找有关可用指标的一些额外信息。

同时,您可以在 Kubernetes Engine -> Clusters -> Cluster -> Nodes -> Node details 找到利用率,或者只使用命令行:

kubectl top nodes                                            
NAME                                       CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
gke-test-cluster-default-pool-cd22e088-29sd   45m          4%     647Mi           24%       
gke-test-cluster-default-pool-cd22e088-8xsg   93m          9%     693Mi           26%       
gke-test-cluster-default-pool-cd22e088-t1h0   41m          4%     625Mi           23%  

此外,您可以使用其他第 3 方监控解决方案来解决此问题。

https://cloud.google.com/monitoring/api/metrics_kubernetes :

node/memory/allocatable_utilizationnode/cpu/allocatable_utilization 似乎在做你想做的事:

  • node/memory/allocatable_utilization - [BETA] 内存可分配利用率

    • 说明:实例上当前正在使用的可分配内存部分。该值不能超过 1,因为使用量不能超过可分配的内存字节数。每 60 秒采样一次。采样后,数据最多 120 秒不可见。
    • 种类:GAUGE,类型:DOUBLE,单位:1
    • 监控资源:k8s_node
    • 标签:
      • memory_typeevictablenon-evictable。可回收内存是内核可以轻松回收的内存,而非可回收内存则不能。
      • component: 相应系统守护进程的名称。
  • node/cpu/allocatable_utilization - [BETA] CPU 可分配利用率。

    • 说明:当前在实例上使用的可分配 CPU 的一部分。每 60 秒采样一次。采样后,数据最多 240 秒不可见。
    • 种类:GAUGE,类型:DOUBLE,单位:1
    • 监控资源:k8s_node

虽然这两个指标都标记为 BETA


提到的原始答案:container/cpu/limit_utilizationcontainer/memory/limit_utilization