Git Product home page Git Product logo

Comments (7)

bzub avatar bzub commented on September 24, 2024

Initial Implementation

The monitor daemon could weight real-servers with:

  • Standard pod metrics provided by Heapster
  • Readiness probe response times (if I can find that information exposed within kubernetes)

These kubernetes specific sources should alleviate the need for kube-router to maintain its own distributed data store to share weight variables. For distributed configuration between kube-router instances a ConfigMap could be updated by a daemon/Pod responsible for calculating load-balancing weights, and kube-router could watch/consume that config.

Research and Justification

There are several ways to get at least pod system-level load metrics in Kubernetes. Application-level load metrics are also increasingly common in Kubernetes apps. Especially true since it's a requirement to expose these metrics to use Horizontal Pod Autoscaling

So here's some potential sources of load metrics that our monitor daemon could support:

  • Prometheus scrape endpoints
  • Pod and Container Readiness Probe events (response times)
  • cAdvisor builtin and custom metrics
  • Ingress Controller metrics (nginx, haproxy, traefik). In real use cases these could be independent or fed through Heapster/cAdvisor or Prometheus

Heapster is a relatively mature and popular cluster addon that collects from several of the above mentioned sources, so it could be a definitive source for system-level load metrics. There is also an effort to standardize this type of information in the apiserver with a metric endpoint. This API might be more apt for app-level load metrics. More info on that in this issue, and implementation work in this repo.

from kube-router.

SEJeff avatar SEJeff commented on September 24, 2024

There is an ingress doing something vaguely similar, but they are storing traffic stats in etcd.

from kube-router.

SEJeff avatar SEJeff commented on September 24, 2024

Also, heapster has sort of been replaced by the metrics api. Additionally, groupcache might fit into your ideas of an in-memory k/v store with the benefits of scaling out

from kube-router.

aauren avatar aauren commented on September 24, 2024

Closing as stale

from kube-router.

murali-reddy avatar murali-reddy commented on September 24, 2024

some design details on how cloudfare implemented dynamic load balancing

https://blog.cloudflare.com/unimog-cloudflares-edge-load-balancer/

current implementation in kube-router is static load balancing worth while to reconsider to truly load balncing

from kube-router.

github-actions avatar github-actions commented on September 24, 2024

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days.

from kube-router.

github-actions avatar github-actions commented on September 24, 2024

This issue was closed because it has been stale for 5 days with no activity.

from kube-router.

Related Issues (20)

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.