在 kubernetes 中,master 节点提供 kube-apiserver 进程来接受 REST API 请求。ICP呢?我们也可以使用 curl 命令在 ICp 主节点上快速测试 k8s REST API 吗?
问问题
686 次
1 回答
1
答案是肯定的。但首先您可能需要注意 --insecure-port 和 --secure-port 的默认端口。默认情况下,如果您没有在 config.yaml 文件中更改它,ICp 使用以下端口来接受 REST 请求:
--不安全端口=8888
--安全端口=8001
netstat -anp|grep 8888
或者
netstat -anp|grep 8001
或者你可以
ps -ef|grep apiserver
结果类似于:
root 5462 5442 9 Jan29 ? 22:48:09 /hyperkube apiserver
--secure-port=8001 --bind-address=0.0.0.0 --advertise-address=10.0.14.94 --insecure-port=8888 --insecure-bind-address=127.0.0.1 ......
在主节点上找到端口后,您可以快速发出 curl,首先尝试通过不安全的端口:
curl http://localhost:8888/api
结果类似于:
{
"kind": "APIVersions",
"versions": [
"v1"
],
"serverAddressByClientCIDRs": [
{
"clientCIDR": "0.0.0.0/0",
"serverAddress": "10.0.14.94:8001"
}
]
}
进一步调用 /api/v1 和 /api/v1/pods,/api/v1/services 随你喜欢。
但是你不能在其他节点上做同样的事情。在其他节点上,您可能必须使用安全端口,但使用-k参数忽略证书:
在客户端或其他节点上:
curl -k https://10.0.14.94:8001/api
除非您指定 ca 证书,否则结果应该相同。
于 2018-02-07T16:53:49.607 回答