我可以从群集内部使用http://localhost:8001/api/v1/pods获取Pods信息。
有没有办法使用http://master-public-ip:8001/api/v1/pods获取pod信息?
答案 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/
...