Add label to nodes:
$ kubectl label nodes 10.xx.xx.xx key1=val1
If I want to delete label(key1=val1)
on node(10.xx.xx.xx), how can I delete by kubectl command and API?
To add label to your node
kubectl label node ip-172-31-15-136 mynode=tst mnode=ssd
To remove label from your node
kubectl label node ip-172-31-15-136 mynode- mynode-
create labels for the nodes:
kubectl label node <nodename> <labelname>=allow
delete above labels from its respecitve nodes:
kubectl label node <nodename> <labelname>-
From kubectl label -h:
Update pod 'foo' by removing a label named 'bar' if it exists.
Does not require the --overwrite flag.
$ kubectl label pods foo bar-
The same works for nodes.
Below command worked for me to remove label:
kubectl label node <nodename> <label>-
Note: The syntax is a minus sign directly after the key. For example, if the node name is worker1 and the label is system=workernode, you can remove a label with the following command.
kubectl label node worker1 system-
To remove the label you can use
kubectl label nodes 10.xx.xx.xx key1-
This worked for me. Add Label
kubectl label node <node name> node-role.kubernetes.io/<role name>=<key - (any name)>
Remove label
kubectl label node <node name> node-role.kubernetes.io/<role name>-
To add a label to kubernetes nodes:
kubectl label node "your-node-name" node-role.kubernetes.io/worker=worker
To remove a label from kubernetes nodes:
kubectl label node "your node-name" node-role.kubernetes.io/worker-
Note: To remove a label put a "-" symbol at the end of your label name
You can remove label this way
kubectl label nodes <node_name> key1- key2-
eg: kubectl label nodes ip-172-20-22-247 key1- key2-
As already mentioned, correct kubectl example to delete label, but there is no mention of removing labels using API clients. if you want to remove label using the API, then you need to provide a new body with the labelname: None
and then patch that body to the node or pod. I am using the kubernetes python client API for example purpose
from pprint import pprint
from kubernetes import client, config
config.load_kube_config()
client.configuration.debug = True
api_instance = client.CoreV1Api()
body = {
"metadata": {
"labels": {
"label-name": None}
}
}
api_response = api_instance.patch_node("minikube", body)
print(api_response)
You can remove the label from a single node using the following kubectl command
kubectl label node 10.xx.xx.xx Key1-
If you want to remove the label for all the nodes, use the following command
kubectl label nodes --all Key1-