<p>I can get Pods information using <a href="http://localhost:8001/api/v1/pods" rel="nofollow">http://localhost:8001/api/v1/pods</a> from inside my cluster.</p>

<p>Is there any way to get pod informations using <a href="http://master-public-ip:8001/api/v1/pods" rel="nofollow">http://master-public-ip:8001/api/v1/pods</a> ?</p>

<p>By default, the master only exposes HTTPS to the public internet, not HTTP. You should be able to hit <code>https://admin:password@master-public-ip/api/v1/pods/</code>, where <code>password</code> is the generated password for the admin user. This can be found either in the <code>.kube/config</code> file on your machine, or in the <code>/srv/kubernetes/known_tokens.csv</code> file on the master.</p>

<p>E.g. on the master VM:</p>

<pre><code>$ cat /srv/kubernetes/known_tokens.csv 
mYpASSWORD,admin,admin
unused,kubelet,kubelet
...
</code></pre>

<p>Or on your machine:</p>

<pre><code>$ cat ~/.kube/config
...
- name: my-cluster
  user:
    client-certificate-data: ...
    client-key-data: ...
    password: mYpASSWORD
    username: admin
...

$ curl --insecure https://admin:mYpASSWORD@master-public-ip/api/v1/pods/
...
</code></pre>

<p>To avoid using <code>--insecure</code> (i.e. actually verify the server certificate that your master is presenting), you can use the <code>--cacert</code> flag to specify the cluster certificate authority from your <code>.kube/config</code> file.</p>

<pre><code>$ cat ~/.kube/config
...
- cluster:
    certificate-authority-data: bIgLoNgBaSe64eNcOdEdStRiNg
    server: https://master-public-ip
  name: my-cluster
...

$ echo bIgLoNgBaSe64eNcOdEdStRiNg | base64 -d &gt; ca.crt

$ curl --cacert=ca.crt https://admin:mYpASSWORD@master-public-ip/api/v1/pods/
...
</code></pre>
