k8s中kube-state-metrics和metrics-s

2024-05-17  本文已影响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. 部署

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

猜你喜欢

热点阅读