kubernetes api中“创建节点”的意思是什么?

时间:2017-10-12 06:43:49

标签: kubernetes

我在kubernetes doc中使用了api:

  

写操作

HTTP请求 POST / api / v1 / nodes

查询参数 参数说明 如果'是',那么输出就很漂亮了。 身体参数 参数说明 身体 节点
响应 代码说明 200 节点确定

the detail of this api is here

我测试了这个API。发送此请求正文的帖子:

{"kind": "Node",
 "apiVersion": "v1",
 "metadata": {
 "name": "10.110.17.48"
 }}

回应是

{
"kind": "Node",
"apiVersion": "v1",
"metadata": {
    "name": "10.110.17.48",
    "selfLink": "/api/v1/nodes10.110.17.48",
    "uid": "61bfa1e6-af14-11e7-8194-005056b6695e",
    "resourceVersion": "3684908",
    "creationTimestamp": "2017-10-12T06:12:53Z"
},
"spec": {
    "externalID": "10.110.17.48"
},
"status": {
    "daemonEndpoints": {
        "kubeletEndpoint": {
            "Port": 0
        }
    },
    "nodeInfo": {
        "machineID": "",
        "systemUUID": "",
        "bootID": "",
        "kernelVersion": "",
        "osImage": "",
        "containerRuntimeVersion": "",
        "kubeletVersion": "",
        "kubeProxyVersion": "",
        "operatingSystem": "",
        "architecture": ""
    }
}
}

然后我检查kubectl获取节点

[root@master3 yum.repos.d]# kubectl get nodes
NAME           STATUS     AGE       VERSION
10.110.17.48   NotReady   18m       
master1        Ready      20d       v1.6.4+coreos.0
master2        Ready      20d       v1.6.4+coreos.0
master3        Ready      20d       v1.6.4+coreos.0
slave1         Ready      20d       v1.6.4+coreos.0
slave2         Ready      20d       v1.6.4+coreos.0
slave3         Ready      44m       v1.6.4+coreos.0

此节点尚未就绪。

这个节点只是一个centos os,没有安装kubelet,kube-proxy,clico-node。

如果我使用这个节点?我应该在这个节点上安装kubelet,kube-proxy,clico-node吗?

然后,这个api的含义是什么?只是通知api服务器将此节点信息存储在etcd中?

1 个答案:

答案 0 :(得分:1)

  

然后,这个api的含义是什么?只是通知api服务器将此节点信息存储在etcd中?

是的,就是这样。发布到API端点不会导致kubernetes尝试在您的计算机上执行任何操作 - 这就是在这样的计算机上运行kubelet的全部目的:授予kubernetes“权限”以及实施更改的方法在节点上

在kubelet启动之前对该API进行POST的假设用法可能是 - 并且我强调可能 - 宣布您打算在不久的将来启动Node,所以如果(假设)您只需要群集中的10个节点,那么POST到API可以通知您的同事您正在启动节点,而且他们不需要。