searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Metrics-server原理及部署

2023-09-20 11:18:36
22
0

Metrics Server 是 Kubernetes 集群核心监控数据的聚合器,它定期通过kubelet获取监控数据(1.7版本前通过cAdvisor,后续精简于kubelet),并通过metrics api提供监控数据。

原理

其中,通过kube-aggregator扩展apiserver,把打到apiserver的请求转发给metrics-server,原理如下:

部署

metrics-server启动参数说明:

验证示例

kubectl top node可以查看node的cpu,内存使用情况:

引入metrics-client,通过go代码获取指标,示例:

import (
   "fmt"
   "context"
 
 
   metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
   metrics "k8s.io/metrics/pkg/client/clientset/versioned"
)
 
 
func main() {
    metricClient, err := metrics.NewForConfig(restConfig)
    if err != nil {
        panic(err)
    }
    resp, err := metricClient.MetricsV1beta1().NodeMetricses().List(context.Background(), metav1.ListOptions{})
    nodesUsed := nodesUsed.Items
    for _, node := range nodesUsed {
       fmt.Println(node.Name)   //节点名称
       fmt.Println(node.Usage.Cpu().MilliValue())    // cpu使用量 单位:毫核
       fmt.Println(node.Usage.Memory().Value() / (1024 * 1024))  // 内存使用量 单位:MB
    }
}

 

0条评论
0 / 1000
高****琦
2文章数
1粉丝数
高****琦
2 文章 | 1 粉丝
高****琦
2文章数
1粉丝数
高****琦
2 文章 | 1 粉丝
原创

Metrics-server原理及部署

2023-09-20 11:18:36
22
0

Metrics Server 是 Kubernetes 集群核心监控数据的聚合器,它定期通过kubelet获取监控数据(1.7版本前通过cAdvisor,后续精简于kubelet),并通过metrics api提供监控数据。

原理

其中,通过kube-aggregator扩展apiserver,把打到apiserver的请求转发给metrics-server,原理如下:

部署

metrics-server启动参数说明:

验证示例

kubectl top node可以查看node的cpu,内存使用情况:

引入metrics-client,通过go代码获取指标,示例:

import (
   "fmt"
   "context"
 
 
   metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
   metrics "k8s.io/metrics/pkg/client/clientset/versioned"
)
 
 
func main() {
    metricClient, err := metrics.NewForConfig(restConfig)
    if err != nil {
        panic(err)
    }
    resp, err := metricClient.MetricsV1beta1().NodeMetricses().List(context.Background(), metav1.ListOptions{})
    nodesUsed := nodesUsed.Items
    for _, node := range nodesUsed {
       fmt.Println(node.Name)   //节点名称
       fmt.Println(node.Usage.Cpu().MilliValue())    // cpu使用量 单位:毫核
       fmt.Println(node.Usage.Memory().Value() / (1024 * 1024))  // 内存使用量 单位:MB
    }
}

 

文章来自个人专栏
GLQ
2 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0