Kubernetes 使用修补程序从节点中删除标签
我想使用策略合并补丁从节点中删除标签。 以下是我用来移除标签的内容:Kubernetes 使用修补程序从节点中删除标签,kubernetes,Kubernetes,我想使用策略合并补丁从节点中删除标签。 以下是我用来移除标签的内容: kubectl patch node xxx --type='strategic' -p '{"metadata":{"labels":{"$patch": "delete", "node-role.kubernetes.io/master":""}}}' xxx patched 它成功了,但这里有两个问题: 它删除了所有标签,但不只是我指定的标签 当我尝试在同一节点上再次对其进行修补时,它报告了错误: 我应该如何仅删除我指
kubectl patch node xxx --type='strategic' -p '{"metadata":{"labels":{"$patch": "delete", "node-role.kubernetes.io/master":""}}}'
xxx patched
它成功了,但这里有两个问题:
具有删除操作的修补程序不是幂等的?我不太理解当我再次尝试删除标签时它报告的错误。检查kubectl内部调用的REST API以从节点删除标签
kubectl label nodes kind-control-plane abc- -v=10
I0602 09:21:04.717687 37243 request.go:1068] Request Body: {"metadata":{"labels":{"abc":null}}}
I0602 09:21:04.717784 37243 round_trippers.go:423] curl -k -v -XPATCH -H "User-Agent: kubectl/v1.18.0 (darwin/amd64) kubernetes/9e99141" -H "Accept: application/json" -H "Content-Type: application/merge-patch+json" 'https://127.0.0.1:32768/api/v1/nodes/kind-control-plane'
然后从客户端库调用相同的API检查kubectl内部调用的REST API,以从节点删除标签
kubectl label nodes kind-control-plane abc- -v=10
I0602 09:21:04.717687 37243 request.go:1068] Request Body: {"metadata":{"labels":{"abc":null}}}
I0602 09:21:04.717784 37243 round_trippers.go:423] curl -k -v -XPATCH -H "User-Agent: kubectl/v1.18.0 (darwin/amd64) kubernetes/9e99141" -H "Accept: application/json" -H "Content-Type: application/merge-patch+json" 'https://127.0.0.1:32768/api/v1/nodes/kind-control-plane'
然后从客户端库调用相同的API是否有理由不使用为此目的而设计的命令?@mdaniel我希望使用kubernetes客户端API,但不直接使用kubectl。是否有与
kubectl label
相同的相应API?是否有理由不使用为此目的而设计的命令?@mdaniel我希望使用kubernetes客户端API,但不直接使用kubectl。是否有与kubectl标签相同的相应API?