Skip to content

kube-state-metrics

kube-state-metrics is a Metrics exporter designed to collect and generate Metrics about the state of Kubernetes objects[400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md][400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md]^[400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md]。 It functions as a service that listens to the Kubernetes API server and generates Metrics regarding the state of objects, such as Pods, Deployments, and Nodes[400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md][400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md]^[400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md].

Key Features

  • Broad Resource Coverage: It is capable of collecting Metrics for the vast majority of Kubernetes built-in resources[400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md][400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md]. This includes core resources like Pods, Nodes, Services, ConfigMaps, Secrets, and Namespaces[400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md][400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md], as well as resources from extensions (DaemonSets, Deployments, ReplicaSets), apps (StatefulSets), batch (Jobs, CronJobs), autoscaling (HPA), and policy (PodDisruptionBudgets)[400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md][400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md]^[400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md].
  • Self-Monitoring: In addition to cluster resources, it exposes Metrics about its own operational performance[400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md][400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md]. This includes statistics on the total number of resources collected and the count of any collection errors[400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md][400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md].
  • Prometheus Integration: It is optimized to serve as a Metrics target for Prometheus[400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md][400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md]. It exposes an HTTP endpoint (typically port 8080) where Metrics are formatted for scraping[400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md][400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md].

Deployment and Configuration

RBAC Configuration

To function correctly, kube-state-metrics requires extensive read permissions to query the status of Kubernetes resources[400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md][400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md]. This typically necessitates the creation of a dedicated ServiceAccount, ClusterRole, and ClusterRoleBinding[400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md][400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md].

The ClusterRole grants specific permissions necessary for its operation, including: * List and Watch: Permissions to list and watch resources are required for almost all monitored groups[400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md][400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md]. * API Groups: Permissions must be granted for various API groups, including the core group (""), policy, extensions, apps, batch, and autoscaling[400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md][400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md]^[400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md]. * Resource Scope: It targets resources such as ConfigMaps, Secrets, Nodes, Pods, Services, ResourceQuotas, PersistentVolumes, PersistentVolumeClaims, and more[400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md][400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md].

Service Exposure

  • Namespace: It is commonly deployed within the kube-system namespace[400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md][400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md].
  • Deployment Type: It is often deployed as a Deployment to ensure high availability and scalability[400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md][400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md].
  • Endpoint: The service exposes Metrics on port 8080 via the HTTP protocol[400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md][400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md]. A Health Check endpoint is also available at /healthz[400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md][400-devops__06-Kubernetes__k8s-paas__07.Promtheus监控k8s企业级应用.md].

Sources