Coder Social home page Coder Social logo

muk007 / metrics-server Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kubernetes-sigs/metrics-server

0.0 0.0 0.0 12.63 MB

Cluster-wide aggregator of resource usage data.

Home Page: https://kubernetes.io/docs/tasks/debug-application-cluster/resource-metrics-pipeline/

License: Apache License 2.0

Makefile 3.38% Go 95.24% Dockerfile 0.22% Shell 1.15%

metrics-server's Introduction

Kubernetes Metrics Server

Metrics Server is a scalable, efficient source of container resource metrics for Kubernetes built-in autoscaling pipelines.

Metrics Server collects resource metrics from Kubelets and exposes them in Kubernetes apiserver through Metrics API for use by Horizontal Pod Autoscaler and Vertical Pod Autoscaler. Metrics API can also be accessed by kubectl top, making it easier to debug autoscaling pipelines.

Metrics Server is not meant for non-autoscaling purposes. For example, don't use it to forward metrics to monitoring solutions, or as a source of monitoring solution metrics.

Metrics Server offers:

  • A single deployment that works on most clusters (see Requirements)
  • Scalable support up to 5,000 node clusters
  • Resource efficiency: Metrics Server uses 1m core of CPU and 3 MB of memory per node

Use cases

You can use Metrics Server for:

Don't use Metrics Server when you need:

  • Non-Kubernetes clusters
  • An accurate source of resource usage metrics
  • Horizontal autoscaling based on other resources than CPU/Memory

For unsupported use cases, check out full monitoring solutions like Prometheus.

Requirements

Metrics Server has specific requirements for cluster and network configuration. These requirements aren't the default for all cluster distributions. Please ensure that your cluster distribution supports these requirements before using Metrics Server:

Installation

Latest Metrics Server release can be installed by running:

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

Installation instructions for previous releases can be found in Metrics Server releases.

WARNING: You should no longer use manifests from master branch (previously available in deploy/kubernetes directory). They are now meant solely for development.

Compatibility matrix:

Metrics Server Metrics API group/version Supported Kubernetes version
0.4.x metrics.k8s.io/v1beta1 1.8+
0.3.x metrics.k8s.io/v1beta1 1.8+

Scaling

Starting from v0.5.0 Metrics Server comes with default resource requests that should guarantee good performance for most cluster configurations up to 100 nodes:

  • 100m core of CPU
  • 300MiB of memory

If neeed resources can be scaled proportionally based on the number of nodes (minimum of 10 nodes). For example, clusters up to 10 nodes can request 10m core CPU and 30MiB memory. Please remember that lowering resources will also proportionally reduce other thresholds like maximum number of autoscaled deployments (down to 10 for 10 node clusters).

Metrics Server resource usage depends on multiple independent dimensions, creating a Scalability Envelope. Default Metrics Server configuration should work in clusters that don't exceed any of the thresholds listed below:

Quantity Namespace threshold Cluster threshold
#Nodes n/a 100
#Pods 7000 7000
#Deployments + HPA 100 100

For clusters of more than 100 nodes, allocate additionally:

  • 1m core per node
  • 3MiB memory per node

Configuration

Depending on your cluster setup, you may also need to change flags passed to the Metrics Server container. Most useful flags:

  • --kubelet-preferred-address-types - The priority of node address types used when determining an address for connecting to a particular node (default [Hostname,InternalDNS,InternalIP,ExternalDNS,ExternalIP])
  • --kubelet-insecure-tls - Do not verify the CA of serving certificates presented by Kubelets. For testing purposes only.
  • --requestheader-client-ca-file - Specify a root certificate bundle for verifying client certificates on incoming requests.

You can get a full list of Metrics Server configuration flags by running:

docker run --rm k8s.gcr.io/metrics-server/metrics-server:v0.3.7 --help

Helm Chart

This Helm chart can deploy the metric-server service in your cluster.

Note: This Helm chart isn't supported by Metrics Server maintainers.

Design

Metrics Server is a component in the core metrics pipeline described in Kubernetes monitoring architecture.

For more information, see:

Have a question?

Before posting it an issue, first checkout Frequently Asked Questions and Known Issues.

Community, discussion, contribution, and support

Learn how to engage with the Kubernetes community on the community page.

You can reach the maintainers of this project at:

This project is maintained by SIG Instrumentation

Code of conduct

Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.

metrics-server's People

Contributors

k8s-ci-robot avatar serathius avatar directxman12 avatar piosz avatar dgrisonnet avatar s-urbaniak avatar qianchenglong avatar maximillianbrain1 avatar kawych avatar somesh2905 avatar reetasingh avatar itskingori avatar smarterclayton avatar olagacek avatar agilgur5 avatar x13n avatar yuwenma avatar bytetwin avatar minac avatar sh4d1 avatar spiffxp avatar xichengliudui avatar oilbeater avatar rtripat avatar pdbogen avatar florianrusch avatar bmcustodio avatar adammw avatar brett-elliott avatar markgeraty avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.