kube-state-metrics
metrics-server
Our great sponsors
kube-state-metrics | metrics-server | |
---|---|---|
33 | 39 | |
5,026 | 5,360 | |
1.8% | 2.5% | |
8.9 | 8.6 | |
7 days ago | 4 days ago | |
Go | Go | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
kube-state-metrics
- Do we have any Prometheus metric to get the kubernetes cluster-level CPU/Memory requests/limits?
-
Prometheus node exporter and cadvisor to send metrics to central prometheus cluster
Those are entirely different types of data. You can get that from something like kube-state-metrics
-
Questions about Kubernetes
Kubernetes itself will not notify you, the way I've seen people do this, is to use something like kube-state-metrics or node_exporter, export that to Prometheus (or preferrably VictoriaMetrics because Prometheus is terrible IMO), and then setup alarms on that with alertmanager or equivalent, or just look at dashboards regularly with Grafana. Realistically I recommend only setting alerts on disk usage and application/database latency. CPU and memory utilization isn't a great metric to alert on a lot of the time.
-
Observability-Landscape-as-Code in Practice
We then have various other Metrics called Kubernetes Workload Metrics. These are the dashboards with names that start with “Kubernetes / Compute Resources / Workload”. These dashboards are specific to the services you are running. They take into account the Kubernetes Workloads in your various namespaces, using kube-state-metrics. For a closer look, check out otel_demo_app_k8s_dashboard.tf.
-
Kubernetes Costs: Effective Cost Optimization Strategies To Reduce Your k8s Bill
The first step to optimizing costs is gaining visibility into your costs using tools. Kubernetes provides a Metrics Server and kube-state-metrics that can give you the overall picture of resource utilization by your cluster. There are more tools that provide more granular breakdowns and provide dashboards with business metrics, infra cost, and alerting functionalities. Here are some strategies to optimize your resource utilization and cloud bills on k8s.
-
Namespace pods accounting
If you have the kube-state-metrics + Prometheus with a sufficiently long retention time, then you could write a PromQL query based on the "kube_pod_created" metric to get the answer to your question. It might be possible with the metrics-server + Prometheus, but I think it would not count some pods that live less than one scrape interval.
- Métricas cAdvisor no Kubernetes com Prometheus e Grafana
-
Kubernetes' Native Metrics and States
There is, also developed by k8s team, the kube-state-metrics, a service that listens to the Kubernetes API server and generates metrics about the state of the objects such as deployments, nodes, and pods.
-
7 essential Kubernetes GitHub Projects you should know about 🔥🚀
2. kube-state-metrics
- I just passed the CKA!! Here are some tips (2022)
metrics-server
-
Deploy Secure Spring Boot Microservices on Amazon EKS Using Terraform and Kubernetes
and the Metrics Server.
-
☸️ Managed Kubernetes : Our dev is on AWS, our prod is on OVH
Metrics-server is installed by default on OVH, and has to be installed manually on AWS/EKS cluster.
-
Autoscaling Ingress controllers in Kubernetes
It's an autoscaler with a metrics server (so I don't need to install 2 different tools).
-
Autoscaling Nodes in Kubernetes
# Create EKS Cluster with version 1.23 eksctl create cluster -f eks-cluster.yaml # Output like below shows cluster has been successfully created 2022-12-30 16:26:46 [ℹ] kubectl command should work with "/home/ec2-user/.kube/config", try 'kubectl get nodes' 2022-12-30 16:26:46 [✔] EKS cluster "ca-demo" in "us-west-2" region is ready # Deploy the Metric server kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml # Output of the above command looks something like below - serviceaccount/metrics-server created clusterrole.rbac.authorization.k8s.io/system:aggregated-metrics-reader created clusterrole.rbac.authorization.k8s.io/system:metrics-server created rolebinding.rbac.authorization.k8s.io/metrics-server-auth-reader created clusterrolebinding.rbac.authorization.k8s.io/metrics-server:system:auth-delegator created clusterrolebinding.rbac.authorization.k8s.io/system:metrics-server created service/metrics-server created deployment.apps/metrics-server created apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io created
-
Korifi : API Cloud Foundry V3 expérimentale dans Kubernetes …
ubuntu@korifi:~$ kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.6.2/components.yaml serviceaccount/metrics-server created clusterrole.rbac.authorization.k8s.io/system:aggregated-metrics-reader created clusterrole.rbac.authorization.k8s.io/system:metrics-server created rolebinding.rbac.authorization.k8s.io/metrics-server-auth-reader created clusterrolebinding.rbac.authorization.k8s.io/metrics-server:system:auth-delegator created clusterrolebinding.rbac.authorization.k8s.io/system:metrics-server created service/metrics-server created deployment.apps/metrics-server created apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io created ubuntu@korifi:~$ kubectl get po,svc -A NAMESPACE NAME READY STATUS RESTARTS AGE cert-manager pod/cert-manager-74d949c895-w6gzm 1/1 Running 0 13m cert-manager pod/cert-manager-cainjector-d9bc5979d-jhr9m 1/1 Running 0 13m cert-manager pod/cert-manager-webhook-84b7ddd796-xw878 1/1 Running 0 13m kpack pod/kpack-controller-84cbbcdff6-nnhdn 1/1 Running 0 9m40s kpack pod/kpack-webhook-56c6b59c4-9zvlb 1/1 Running 0 9m40s kube-system pod/coredns-565d847f94-kst2l 1/1 Running 0 31m kube-system pod/coredns-565d847f94-rv8pn 1/1 Running 0 31m kube-system pod/etcd-kind-control-plane 1/1 Running 0 32m kube-system pod/kindnet-275pd 1/1 Running 0 31m kube-system pod/kube-apiserver-kind-control-plane 1/1 Running 0 32m kube-system pod/kube-controller-manager-kind-control-plane 1/1 Running 0 32m kube-system pod/kube-proxy-qw9fj 1/1 Running 0 31m kube-system pod/kube-scheduler-kind-control-plane 1/1 Running 0 32m kube-system pod/metrics-server-8ff8f88c6-69t9z 0/1 Running 0 4m21s local-path-storage pod/local-path-provisioner-684f458cdd-f6zqf 1/1 Running 0 31m metallb-system pod/controller-84d6d4db45-bph5x 1/1 Running 0 29m metallb-system pod/speaker-pcl4p 1/1 Running 0 29m projectcontour pod/contour-7b9b9cdfd6-h5jzg 1/1 Running 0 6m43s projectcontour pod/contour-7b9b9cdfd6-nhbq2 1/1 Running 0 6m43s projectcontour pod/contour-certgen-v1.23.2-hxh7k 0/1 Completed 0 6m43s projectcontour pod/envoy-v4xk9 2/2 Running 0 6m43s servicebinding-system pod/servicebinding-controller-manager-85f7498cf-xd7jc 2/2 Running 0 115s NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE cert-manager service/cert-manager ClusterIP 10.96.153.49 9402/TCP 13m cert-manager service/cert-manager-webhook ClusterIP 10.96.102.82 443/TCP 13m default service/kubernetes ClusterIP 10.96.0.1 443/TCP 32m kpack service/kpack-webhook ClusterIP 10.96.227.201 443/TCP 9m40s kube-system service/kube-dns ClusterIP 10.96.0.10 53/UDP,53/TCP,9153/TCP 32m kube-system service/metrics-server ClusterIP 10.96.204.62 443/TCP 4m21s metallb-system service/webhook-service ClusterIP 10.96.186.139 443/TCP 29m projectcontour service/contour ClusterIP 10.96.138.58 8001/TCP 6m43s projectcontour service/envoy LoadBalancer 10.96.126.44 172.18.255.200 80:30632/TCP,443:30730/TCP 6m43s servicebinding-system service/servicebinding-controller-manager-metrics-service ClusterIP 10.96.147.189 8443/TCP 115s servicebinding-system service/servicebinding-webhook-service ClusterIP 10.96.14.224 443/TCP 115s
-
Performance testing an application running on kubernetes
If you have the the metrics-server installed, you can pull all of the resource information yourself and manipulate it in a way that's useful for you. Link.
-
Murre - the lightweight K8s metrics monitoring tool
I wonder who will raise the glove and take that approach to use to post Metrics API resources instead of metrics-server.
- HorizontalPodAutoscaler does not return TARGETS metrics and returns '<unknown>' on kubectl.
-
Request-based autoscaling in Kubernetes: scaling to zero
A metrics server to store and aggregate metrics (Kubernetes doesn't come with one by default).
-
How to Deploy JHipster Microservices on Amazon EKS Using Terraform and Kubernetes
and Metrics Server, and Cluster Autoscaler for scaling your workloads.
What are some alternatives?
prometheus - The Prometheus monitoring system and time series database.
cadvisor - Analyzes resource usage and performance characteristics of running containers.
k8s-prometheus-adapter - An implementation of the custom.metrics.k8s.io API using Prometheus
kube-prometheus - Use Prometheus to monitor Kubernetes and applications running on Kubernetes
php-fpm_exporter - A prometheus exporter for PHP-FPM.
k3s - Lightweight Kubernetes
kubespray - Deploy a Production Ready Kubernetes Cluster
istio - Connect, secure, control, and observe services.
k9s - 🐶 Kubernetes CLI To Manage Your Clusters In Style!
kube-metrics-adapter - General purpose metrics adapter for Kubernetes HPA metrics
minikube - Run Kubernetes locally
rancher - Complete container management platform