Metrics Server fails with FailedDiscoveryCheck

Metrics Server fails to collect metrics.

Installed metrics-server from
https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.6/components.yaml

Made minor changes as below (spec.templete.spec.containers.args)
args:
- --cert-dir=/tmp
- --secure-port=4443
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP

kubectl top nodes
Error from server (ServiceUnavailable): the server is currently unable to handle the request (get nodes.metrics.k8s.io)

kubectl describe apiservice v1beta1.metrics.k8s.io
Message: failing or missing response from https://IPAddress:4443/apis/metrics.k8s.io/v1beta1: Get https://IPAddress:4443/apis/metrics.k8s.io/v1beta1: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
Reason: FailedDiscoveryCheck

kubectl logs -n kube-system deploy/metrics-server

Found 3 pods, using pod/metrics-server-6ffdb54684-4f5nv
I0823 14:07:20.328793 1 serving.go:312] Generated self-signed cert (/tmp/apiserver.crt, /tmp/apiserver.key)
I0823 14:07:21.009558 1 secure_serving.go:116] Serving securely on [::]:4443
E0823 15:20:22.133725 1 manager.go:111] unable to fully collect metrics: unable to fully scrape metrics from source kubelet_summary:IPAddress.ec2.internal: unable to get CPU for container “metrics-server-nanny” in pod kube-system/metrics-server-v0.3.6-859bf9969f-pzt5b on node “IPAddress”, discarding data: missing cpu usage metric

Cluster information:

Kubernetes version:
Cloud being used: EKS 1.17
Installation method: Cloud formation
Metrics Server : 0.3.6

thanks for help in advance !

Don’t have much experience with metrics but this issue on GitHub seems to match your error:

Kind regards,
Stephen

thanks @stephendotcarter

I followed every step but metrics fail to connect.

I am not sure if there is something wrong with security groups.

My EKS cluster, SG settings

Outbound :
It is open for external customers.

Inbound