如何删除kubernetes吊舱的标签

我想通过kubernetes API从节点或窗口删除标签,我的kubernetes版本为1.24

kubectl get pod --show-labels | grep all-flow-0fbah all-flow-0fbah 1/1 Running 2 9d app=all-flow,op=vps1,version=1001 

我使用命令如下:

  curl --request PATCH --header "Content-Type:application/json-patch+json" http://10.93.78.11:8080/api/v1/namespaces/default/pods/all-flow-0fbah --data '{"metadata":{"labels":{"a":"b"}}}' 

但是这不起作用。 返回信息如下:

 { "kind": "Status", "apiVersion": "v1", "metadata": {}, "status": "Failure", "message": "the server responded with the status code 415 but did not return more information", "details": {}, "code": 415 } 

然后我改变像这样的curl标题:

 curl --request PATCH --header "Content-Type:application/merge-patch+json" http://10.93.78.11:8080/api/v1/namespaces/default/pods/all-flow-0fbah --data '{"meadata":{"labels":{"op":"vps3"}}}' 

它不删除标签,但添加一个新的标签到该窗格。 那么有没有人可以告诉我如何删除一个像使用命令一样的标签:

 kubectl label pod all-flow-0fbah key- 

谢谢!

正如workhardcc发表评论,这样做的方式是

 curl -k -v -XPATCH -H "Accept: application/json, /" -H "Content-Type: application/strategic-merge-patch+json" 10.10.10.10:443/api/v1/namespaces/default/pds/all-flow-946y0 --data '{"metadata":{"labels":{"$patch": "delete", "app":"all-flow"}}}' 

最方便的方法是使用kubectl edit pods all-flow-0fbah 。 只需删除编辑器中的标签字段。

http://kubernetes.io/docs/user-guide/kubectl/kubectl_edit/

正在寻找CLI命令我自己。 这是什么对我有用:

 kubectl patch pod <podname> --type=json -p='[{"op": "remove", "path": "/metadata/labels/somelabelkey"}]'