Kubernetes #2 – Metrics Server

By | 2019-11-29

Note: This post was updated to actual (0.3.6) version of Kubernetes Metrics Server at 2020.06.10.

For using kubectl top command we need metrics server, formally called Heapster.

You can find the Kubernetes Metrics server at github: https://github.com/kubernetes-sigs/metrics-server
Documentation: https://kubernetes.io/docs/tasks/debug-application-cluster/resource-metrics-pipeline

You can check the versions at https://github.com/kubernetes-sigs/metrics-server/releases . To innstall the version 0.3.6 execute the following command:

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

Edit the metrics-server deployment:

$ kubectl edit deployment -n kube-system metrics-server

Add the following args flags to the deployment:

        - --kubelet-insecure-tls
        - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname

It should look like:

    spec:
      containers:
      - args:
        - --cert-dir=/tmp
        - --secure-port=4443
        - --kubelet-insecure-tls
        - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
        image: k8s.gcr.io/metrics-server-amd64:v0.3.6

It needs some time to collect metrics data. We can test it with the following commands:

$ kubectl top pod --all-namespaces
$ kubectl top nodes

Example output:

NAMESPACE              NAME                                         CPU(cores)   MEMORY(bytes)
kube-system            coredns-5644d7b6d9-6lccv                     5m           8Mi
kube-system            coredns-5644d7b6d9-dnnst                     3m           7Mi
kube-system            etcd-k8s-mst-1                               23m          41Mi
kube-system            kube-apiserver-k8s-mst-1                     43m          235Mi
kube-system            kube-controller-manager-k8s-mst-1            16m          37Mi
kube-system            kube-flannel-ds-amd64-48s75                  3m           9Mi
kube-system            kube-flannel-ds-amd64-8wrnh                  3m           10Mi
kube-system            kube-flannel-ds-amd64-jnthq                  3m           11Mi
kube-system            kube-flannel-ds-amd64-lvpdv                  4m           10Mi
kube-system            kube-flannel-ds-amd64-rsbmx                  3m           9Mi
kube-system            kube-flannel-ds-amd64-vtbb6                  3m           10Mi
kube-system            kube-proxy-9hpd7                             1m           12Mi
kube-system            kube-proxy-9xzcb                             1m           12Mi
kube-system            kube-proxy-n8b99                             2m           14Mi
kube-system            kube-proxy-nx7fg                             1m           12Mi
kube-system            kube-proxy-plrsc                             1m           12Mi
kube-system            kube-proxy-qsvg5                             1m           12Mi
kube-system            kube-scheduler-k8s-mst-1                     2m           12Mi
kube-system            kubernetes-dashboard-7c54d59f66-swmpx        1m           10Mi
kube-system            metrics-server-67684d476-dcpmb               1m           12Mi

One thought on “Kubernetes #2 – Metrics Server

  1. Pingback: Kubernetes #3 – MetalLB and Dashboard – IT

Comments are closed.