美文网首页
k8s中kube-state-metrics和metrics-s

k8s中kube-state-metrics和metrics-s

作者: 国服最坑开发 | 来源:发表于2024-05-17 15:34 被阅读0次

0x01.kube-state-metrics:

官网: https://github.com/kubernetes/kube-state-metrics
版本分布:

kube-state-metrics Kubernetes client-go Version
v2.8.2 v1.26
v2.9.2 v1.26
v2.10.1 v1.27
v2.11.0 v1.28
v2.12.0 v1.29
main v1.30

0x02.metrics-server

官网: https://github.com/kubernetes-sigs/metrics-server

Metrics Server Metrics API group/version Supported Kubernetes version
0.7.x metrics.k8s.io/v1beta1 1.19+
0.6.x metrics.k8s.io/v1beta1 1.19+
0.5.x metrics.k8s.io/v1beta1 *1.8+
0.4.x metrics.k8s.io/v1beta1 *1.8+
0.3.x metrics.k8s.io/v1beta1 1.8-1.21

0x03.使用场景区别

kube-state-metrics

使用场景:

资源状态监控:kube-state-metrics 主要用于收集 Kubernetes 集群中资源的状态信息,包括 Pods、Nodes、Deployments、Services 等。这些指标帮助你了解集群中资源的状态和配置情况。
静态指标:适用于需要监控 Kubernetes 资源的状态和元数据的场景。例如,监控 Pods 的生命周期状态、Deployments 的副本数是否满足预期、Nodes 是否健康等。
Prometheus 监控:通常与 Prometheus 一起使用,通过抓取 kube-state-metrics 生成的指标来建立监控和告警体系。

示例指标:

kube_pod_status_phase{namespace="default",pod="my-pod"}: Pod 的状态(例如 Running、Pending 等)。
kube_deployment_replicas{namespace="default",deployment="my-deployment"}: Deployment 的副本数。
kube_node_status_condition{node="node1",condition="Ready"}: Node 的状态条件。

metrics-server

使用场景:

资源性能监控:metrics-server 主要用于收集 Kubernetes 集群中 Pods 和 Nodes 的实时性能指标,包括 CPU 和内存使用率等。这些指标帮助你了解资源的性能使用情况。
动态指标:适用于需要实时监控 Kubernetes 资源的性能和使用情况的场景。例如,Horizontal Pod Autoscaler (HPA) 和 Kubernetes Dashboard 都依赖于 metrics-server 提供的指标。
自动伸缩:metrics-server 提供的性能指标被 HPA 使用,以便根据实际的资源使用情况自动调整 Pod 副本数。

示例指标:

cpu_usage: Pod 或 Node 的 CPU 使用率。
memory_usage: Pod 或 Node 的内存使用率。

主要区别

指标类型:

kube-state-metrics 提供的是集群中资源的状态信息和元数据(静态指标),例如 Pod 状态、Deployment 副本数等。
metrics-server 提供的是实时的资源性能指标(动态指标),例如 CPU 和内存使用情况。

用途:

kube-state-metrics 主要用于监控 Kubernetes 资源的状态和配置,帮助管理员了解资源是否按预期运行。
metrics-server 主要用于监控资源的性能和使用情况,帮助进行自动伸缩和实时性能监控。

数据源:

kube-state-metrics 从 Kubernetes API Server 获取数据。
metrics-server 从 kubelet 获取实时的性能数据。

依赖关系:

kube-state-metrics 通常用于构建基于 Prometheus 的监控和告警系统。
metrics-server 通常用于支持 HPA 和 Kubernetes Dashboard 的实时性能监控需求。

总结

使用 kube-state-metrics 监控 Kubernetes 资源的状态和元数据,例如 Pods 是否运行、Nodes 是否健康等。
使用 metrics-server 监控 Kubernetes 资源的性能和使用情况,例如 CPU 和内存使用率,特别是在需要自动伸缩时。
通过结合使用这两个工具,你可以全面了解 Kubernetes 集群的运行状况,从资源状态到性能使用情况,确保集群的稳定和高效运行。

0x04. 部署

  • kube-state-metrics
kubectl apply -f https://raw.githubusercontent.com/kubernetes/kube-state-metrics/master/examples/standard/deployment.yaml -n monitoring
  • metrics-server
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

相关文章

  • prometheus监控、告警与存储

    一、kube-state-metrics 1.1 kube-state-metrics介绍 github地址:ht...

  • Prometheus -1-3

    7.5 kube-state-metrics 安装和配置Alertmanager-发送报警到qq邮箱 cat al...

  • kube-state-metrics

    https://github.com/kubernetes/kube-state-metrics/tree/mas...

  • kube-state-metrics国内下载地址

    概览 使用国内Register管理kube-state-metrics[https://github.com/23...

  • k8s搭建xxl-job测试环境

    背景 搭建本地k8s环境和xxl-job测试环境,在k8s环境中跑通xxl-job调度器和执行器 搭建k8s 注:...

  • replication controller

    rc 副本控制器,在k8s中,确保k8s的高可用性,确保任何时间都有pod在k8s中运行。特性支持滚动升级和升级回...

  • k8s系列09-服务发现与流量暴露

    本文主要介绍了K8S集群中的服务发现和流量暴露机制,包括K8S中的workload类型、service类型、DNS...

  • 深入剖析k8s中常见的控制器

    本文是《深入剖析k8s》学习笔记的第三篇,主要对k8s中的控制器进行分析和讲解。 pod是k8s操作的最小单元,操...

  • 第二篇 k8s概览

    k8s 基本知识概念预览 本文引用公司内部大佬的总结和张磊老师在深入理解k8s教程中的知识点 源头 k8s 思想源...

  • k8s概念

    一、 概念篇 1. 请简单描述下K8S中Pod和Container的关系。 云计算系统的操作系统是 k8s ,co...

网友评论

      本文标题:k8s中kube-state-metrics和metrics-s

      本文链接:https://www.haomeiwen.com/subject/btzifjtx.html