1

在 kubernetes 中,master 节点提供 kube-apiserver 进程来接受 REST API 请求。ICP呢?我们也可以使用 curl 命令在 ICp 主节点上快速测试 k8s REST API 吗?

4

1 回答 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 回答