How one can Deploy a Metrics Server in Kubernetes


If you need to deploy a Metrics Server in Kubernetes, you then first must create a namespace for it to reside it, adopted by putting in the precise metrics server.

Step 1 – Set up the Metrics Server

Utilizing kubectl

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/obtain/v0.5.0/parts.yaml

Utilizing helm

kubectl create namespace metrics

helm set up metrics-server 
    secure/metrics-server 
    --version 2.9.0 
    --namepsace metrics

Step 2 – Get the Metrics Server Standing

In the event you used kubectl above, then it’s best to be capable of run:

kubectl get apiservice v1beta1.metrics.k8s.io -o json | jq '.standing'

In any other case with helm, run:

kubectl describe hpa

Step 3 – Verifying the Metrics Server Setup

In the event you get the next output, then it simply means the server is just not prepared but, wait a second longer:

{
  "situations": [
    {
      "lastTransitionTime": "2022-04-13T13:26:45Z",
      "message": "endpoints for service/metrics-server in "kube-system" have no addresses with port name "https"",
      "reason": "MissingEndpoints",
      "status": "False",
      "type": "Available"
    }
  ]
}

When the Metrics Server is prepared, you’re going to get a response as follows:

{
  "situations": [
    {
      "lastTransitionTime": "2022-04-13T13:27:08Z",
      "message": "all checks passed",
      "reason": "Passed",
      "status": "True",
      "type": "Available"
    }
  ]
}

Step 4 – A tip to be alerted when prepared

You’ll be able to all the time watch the above command as a substitute of working the identical command time and again above, whereas ready for the server to develop into out there:

watch -n1 "kubectl get apiservice v1beta1.metrics.k8s.io -o json | jq '.standing'"

Leave a Reply