Kubernetes API:如何从节点添加/删除标签

Kubernetes API:如何从节点添加/删除标签,kubernetes,Kubernetes,通过REST API,我可以通过以下方式获得节点的详细信息: http://127.0.0.1:8001/api/v1/nodes/{Node Name} 但是,我想添加一个新标签并删除一个旧标签。说添加标签app=service,然后删除backend=database,我应该调用什么类型的请求,我需要发送什么JSON格式?您可以只使用一个请求设置一个新标签 JSON是: { "metadata": { "labels": { "app": "

通过REST API,我可以通过以下方式获得节点的详细信息:

http://127.0.0.1:8001/api/v1/nodes/{Node Name}

但是,我想添加一个新标签并删除一个旧标签。说添加标签
app=service
,然后删除
backend=database
,我应该调用什么类型的请求,我需要发送什么JSON格式?

您可以只使用一个请求设置一个新标签

JSON是:

{
    "metadata": {
        "labels": {
            "app": "service"
        }
    }
}
您应该将
补丁
请求发送到:

http://127.0.0.1:8001/api/v1/nodes/<node_name>
http://127.0.0.1:8001/api/v1/nodes/
因此,最后我们有:

curl -k -v -H "Accept: application/json" -XPATCH -d '{"metadata":{"labels":{"app":"service"}}}' -H "Content-Type: application/merge-patch+json" http://127.0.0.1:8001/api/v1/nodes/<node_name>
curl-k-v-H“Accept:application/json”-XPATCH-d'{“metadata”:{“labels”:{“app”:“service”}}}}'-H“内容类型:application/merge patch+json”http://127.0.0.1:8001/api/v1/nodes/
curl-X补丁\/api/v1/nodes/\-H'授权:承载'\-H'内容类型:应用程序/合并补丁+json'\-H'缓存控制:无缓存'\-d'{
“元数据”:{
“标签”:{
“名称”:“vaibhav”
}
}
}
'
这在eks上适用,如果您的终端集群端点不安全,只需在curl命令中添加“-unsecure”

承载令牌是:kube系统名称空间中的eks管理令牌(k8s机密),或者您可以创建一个具有受限访问权限的令牌


需要注意的重要事项:内容类型:应用程序/合并补丁+json

我似乎缺少
内容类型:应用程序/合并补丁+json
!也希望以某种方式删除标签,但其工作原理类似于重命名密钥。这会删除以前设置为此节点的所有标签吗?还是仅仅添加一个新标签?@cardinalgray上面的方法添加了一个新标签。以前设置为节点的所有标签仍然存在。
curl -X PATCH \   <cluster end point>/api/v1/nodes/<node name> \   -H 'Authorization: Bearer <your token>' \   -H 'Content-Type: application/merge-patch+json' \   -H 'cache-control: no-cache' \   -d '{
    "metadata": {
        "labels": {
            "name": "vaibhav"
            }
        }
        }
      '