Skip to content

Probably contrary statement regarding usage of multiple metrics server pods #1643

@youwalther65

Description

@youwalther65

What happened: Kubernetes Metrics Server (KMS) documentation has two statements when it comes to usage of multiple metrics server pods - Can I run more than one instance of metrics-server? which states but only one instance will be actively serving metrics API. and High Availability which states it is recommended to add the --enable-aggregator-routing=true CLI flag to the kube-apiserver so that requests sent to Metrics Server are load balanced between the 2 instances. This is somehow confusing for me.

What you expected to happen: Because KMS uses active-active, not leader election, and kube-apiserver with --enable-aggregator-routing=true uses endpoints to round-robin I expect that all pods are used. Is this understanding correct?

For example kube-controller-manager HPA controller with multiple threads will utilise all metrics server pods which leads to faster work_queue processing.

Anything else we need to know?:

Environment: EKS with multiple KMS replicas and kube-apiserver --enable-aggregator-routing=true

  • Kubernetes distribution (GKE, EKS, Kubeadm, the hard way, etc.): any

  • Container Network Setup (flannel, calico, etc.):

  • Kubernetes version (use kubectl version):

  • Metrics Server manifest

spoiler for Metrics Server manifest:
  • Kubelet config:
spoiler for Kubelet config:
  • Metrics server logs:
spoiler for Metrics Server logs:
  • Status of Metrics API:
spolier for Status of Metrics API:
kubectl describe apiservice v1beta1.metrics.k8s.io

/kind bug

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/bugCategorizes issue or PR as related to a bug.lifecycle/rottenDenotes an issue or PR that has aged beyond stale and will be auto-closed.needs-triageIndicates an issue or PR lacks a `triage/foo` label and requires one.

    Type

    No type

    Projects

    Status

    Closed

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions