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
Pingback: Kubernetes #3 – MetalLB and Dashboard – IT