使用Kubernetes中的Master Public IP访问Pod信息

时间:2015-07-27 16:27:26

标签: kubernetes

我可以从群集内部使用http://localhost:8001/api/v1/pods获取Pods信息。

有没有办法使用http://master-public-ip:8001/api/v1/pods获取pod信息?

1 个答案:

答案 0 :(得分:2)

默认情况下,主服务器仅向公共互联网公开HTTPS,而不是HTTP。您应该能够点击https://admin:password@master-public-ip/api/v1/pods/,其中password是管理员用户生成的密码。这可以在您计算机上的.kube/config文件中找到,也可以在主计算机上的/srv/kubernetes/known_tokens.csv文件中找到。

E.g。在主VM上:

$ cat /srv/kubernetes/known_tokens.csv 
mYpASSWORD,admin,admin
unused,kubelet,kubelet
...

或在您的机器上:

$ 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/
...

为避免使用--insecure(即实际验证主服务器提供的服务器证书),您可以使用--cacert标志从.kube/config文件中指定群集证书颁发机构。

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

$ echo bIgLoNgBaSe64eNcOdEdStRiNg | base64 -d > ca.crt

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