<p>executing the command <code>kubectl get --raw /apis/metrics.k8s.io/v1beta1</code> 
it returned <code>Error from server (ServiceUnavailable): the server is currently unable to handle the request</code></p>

<p>view the logs from metrics-server</p>

<p><code>http: TLS handshake error from 192.168.133.64:51926:EOF</code></p>

<p>kubelet version is 1.12.3</p>

<p>metrics-server 0.3.1</p>

<p>i have another clusters-set with the same version and configuration, metrics-server works just fine</p>

<p>part of metrics-server-deployment:
<code>
 containers:
      - name: metrics-server
        image: k8s.gcr.io/metrics-server-amd64:v0.3.1
        imagePullPolicy: Always
        command:
        - /metrics-server
        - --kubelet-insecure-tls
        volumeMounts:
        - name: tmp-dir
          mountPath: /tmp
</code></p>

<p>Looks like it is failing because the hostname resolution happens through the internal DNS system which have pods/service entries but not cluster node entries.</p>
<p>Try running your metrics-server with following arguments:</p>
<pre><code>- command:
  - /metrics-server
  - --kubelet-insecure-tls
  - --kubelet-preferred-address-types=InternalIP
</code></pre>
<p>It should work for you as well.</p>
<p>For more info you can look at the following issue <a href="https://github.com/kubernetes-incubator/metrics-server/issues/131" rel="nofollow noreferrer">here</a></p>
<p>Hope this helps.</p>
