<p>I looked into the service account ca.crt files that get deployed into the container and they don't contain any SAN with the IP or dns name of the master nodes. This results in SSL errors like: <a href="https://0.0.0.0:10250/metrics" rel="nofollow noreferrer">https://0.0.0.0:10250/metrics</a>: x509: cannot validate certificate for 0.0.0.0 because it doesn't contain any IP SANs.</p>

<p>Did anybody else run into this problem? How did you solve it other then allowing insecure ssl?</p>

<p>The ca cert provided by a service account (<code>/run/secrets/kubernetes.io/serviceaccount/ca.crt</code>) is for communicating with the apiserver (served by the master on GKE).</p>

<pre><code># curl --cacert /run/secrets/kubernetes.io/serviceaccount/ca.crt https://kubernetes -H "Authorization: Bearer $(cat /run/secrets/kubernetes.io/serviceaccount/token)"
{
  "paths": [
    "/api",
    ...
  ]
</code></pre>

<p>It looks like you are trying to talk to the kubelet API (port 10250). The kubelet API serves a self-signed cert, so insecure is the only way.</p>
