After setting up Docker Desktop and Kubernetes on WSL, I noticed that I was unable to gather cluster node CPU and memory information using
kubectl top node. A quick look at the Kubernetes documentation indicated that I needed to install the Metrics Server. However, most current articles addressing how to install the Kubernetes Metrics Server for Docker Desktop are a bit out of date.
Here are the steps I followed to get the latest release of the Kubernetes Metrics Server running with the Docker Desktop Kubernetes release.
Deploying the Metrics Server
- Download the most recent components.yaml from the metrics-server GitHub repo.
- Edit components.yaml and add
--kubelet-insecure-tlsto the the
argssection for the metrics-server deployment:
args: - --cert-dir=/tmp - --secure-port=4443 - --kubelet-insecure-tls
- Apply components.yaml with
kubectl apply -f components.yaml:
clusterrole.rbac.authorization.k8s.io/system:aggregated-metrics-reader created clusterrolebinding.rbac.authorization.k8s.io/metrics-server:system:auth-delegator created rolebinding.rbac.authorization.k8s.io/metrics-server-auth-reader created apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io created serviceaccount/metrics-server created deployment.apps/metrics-server created service/metrics-server created clusterrole.rbac.authorization.k8s.io/system:metrics-server created clusterrolebinding.rbac.authorization.k8s.io/system:metrics-server created
- Enjoy your newly available CPU and memory statistics!
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% docker-desktop 222m 5% 2046Mi 16%
Note that you may see a message like
error: metrics not available yet right after the Metrics Server has been started. Just wait a bit and the statistics should be gathered successfully.
If you continue to see issues with the Metrics Server, you can troubleshoot by using
kubectl describe pod metrics-server-<your-pod-id> -n kube-system to look at the pod’s most recent events.